Part Number Hot Search : 
CH400DPT 5742EUB PIC18F4 UPD16 064B1 3330DT3 W8511HI GPW576
Product Description
Full Text Search
 

To Download WM8994 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  w WM8994 multi-channel audio hub codec for smartphones wolfson microelectronics plc production data, april 2012, rev 4.4 [1] this product is protected by patents us 7,622,984, us 7,626,445,us 7,765,019 and gb 2,432,765 copyright ? 2012 wolfson microelectronics plc description the WM8994 [1] is a highly integrated ultra-low power hi-fi codec designed for smartphones and other portable devices rich in multimedia features. an integrated stereo class d/ab speaker driver and class w headphone driver minimize power consumption during audio playback. the device requires only two voltage supplies, with all other internal supply rails generated from integrated ldos. stereo full duplex asynchronous sample rate conversion and multi-channel digital mixing combined with powerful analogue mixing allow the device to support a huge range of different architectures and use cases. a fully programmable parametric eq provides speaker compensation and a dynamic range controller can be used in the adc or dac paths for maintaining a constant signal level, maximizing loudness and protecting speakers against overloading and clipping. a smart digital microphone interface provides power regulation, a low jitter clock output and decimation filters for up to four digital microphones. a mic activity detect with interrupt is available. fully differential internal architecture and on-chip rf noise filters ensure a very high degree of noise immunity. active ground loop noise rejection and dc offset correction help prevent pop noise and suppress ground noise on the headphone outputs. features ? hi-fi 24-bit 4-channel dac and 2-channel adc ? 100db snr during dac playback (?a? weighted) ? smart mic interface - power, clocking and data input for up to four digital mics - high performance analogue mic interface - mic activity detect & interrupt allows processor to sleep ? 2w stereo (2 x 2w) class d/ab speaker driver ? capless class w headphone drivers - integrated charge pump - 5.3mw total power for dac playback to headphones ? 4 line outputs (single-ended or differential) ? btl earpiece driver ? digital audio interfaces for multi-processor architecture - asynchronous stereo duplex sample rate conversion - powerful mixing and digital loopback functions ? retune tm mobile 5-band, 6-channel parametric eq ? programmable dynamic range controller ? dual fll provides all necessary clocks - self-clocking modes allow processor to sleep - all standard sample rates from 8khz to 96khz ? active noise reduction circuits - dc offset correction removes pops and clicks - ground loop noise cancellation ? integrated ldo regulators ? 72-ball w-csp package (4.511 x 4.023 x 0.7mm) applications ? smartphones and music phones ? portable navigation ? tablets ? ebooks ? portable media players
WM8994 production data w pd, april 2012, rev 4.4 2 table of contents description ....................................................................................................... 1 ? features ............................................................................................................ 1 ? applications ..................................................................................................... 1 ? table of contents ......................................................................................... 2 ? block diagram ................................................................................................ 6 ? pin configuration .......................................................................................... 7 ? ordering information .................................................................................. 7 ? pin description ................................................................................................ 8 ? absolute maximum ratings ...................................................................... 11 ? recommended operating conditions ................................................... 12 ? thermal performance ............................................................................... 13 ? electrical characteristics ................................................................... 14 ? input signal level .................................................................................................. 14 ? input pin resistance .............................................................................................. 15 ? programmable gains ............................................................................................. 17 ? output driver characteristics ....................................................................... 18 ? adc input path performance ............................................................................. 19 ? dac output path performance ......................................................................... 20 ? bypass path performance .................................................................................. 23 ? multi-path crosstalk ........................................................................................... 25 ? digital input / output ............................................................................................ 27 ? digital filter characteristics ......................................................................... 27 ? microphone bias characteristics ................................................................... 28 ? miscellaneous characteristics ...................................................................... 29 ? terminology ............................................................................................................. 30 ? typical performance ................................................................................. 31 ? typical power consumption .............................................................................. 31 ? typical signal latency ......................................................................................... 32 ? speaker driver performance ........................................................................... 33 ? signal timing requirements .................................................................... 34 ? system clocks & frequency locked loop (fll) .......................................... 34 ? audio interface timing ......................................................................................... 35 ? digital microphone (dmic) interface timing .................................................................................... .............. 35 ? digital audio interface - master mode ......................................................................................... .................. 36 ? digital audio interface - slave mode .......................................................................................... ..................... 37 ? digital audio interface - tdm mode ............................................................................................ ...................... 38 ? control interface timing ................................................................................... 39 ? 2-wire (i2c) control mode ..................................................................................................... ................................ 39 ? 3-wire (spi) control mode ..................................................................................................... ................................ 40 ? 4-wire (spi) control mode ..................................................................................................... ................................ 41 ? device description ...................................................................................... 42 ? introduction ............................................................................................................ 42 ? analogue input signal path ............................................................................... 44 ? microphone inputs ............................................................................................................. ..................................... 45 ? microphone bias control ....................................................................................................... ............................. 45 ? microphone current detect ..................................................................................................... ......................... 46 ? line and voice codec inputs ................................................................................................... ............................. 47 ? input pga enable .............................................................................................................. ........................................ 48 ? input pga configuration ....................................................................................................... ............................... 48 ? input pga volume control ...................................................................................................... ............................. 49 ? input mixer enable ............................................................................................................................... .................... 52 ?
production data WM8994 w pd, april 2012, rev 4.4 3 input mixer configuration and volume control .................................................................................. ..... 52 ? digital microphone interface .......................................................................... 56 ? digital pull-up and pull-down ................................................................................................. ........................... 59 ? analogue to digital converter (adc) ............................................................ 59 ? adc clocking control .......................................................................................................... ................................. 60 ? digital core architecture ................................................................................. 61 ? digital mixing ............................................................................................................ 63 ? audio interface 1 (aif1) output mixing ........................................................................................ ..................... 64 ? digital sidetone mixing ....................................................................................................... ................................... 65 ? digital sidetone volume and filter control .................................................................................... ........... 65 ? dac output digital mixing ..................................................................................................... ................................ 67 ? audio interface 2 (aif2) digital mixing ....................................................................................... ...................... 68 ? ultrasonic (4fs) ai f output mode .............................................................................................. ........................ 69 ? dynamic range control (drc) ........................................................................... 70 ? drc compression / expansion / limiting ........................................................................................ ................... 71 ? gain limits ............................................................................................................................... ..................................... 72 ? dynamic characteristics ....................................................................................................... .............................. 72 ? anti-clip control ............................................................................................................. ........................................ 73 ? quick release control ......................................................................................................... ................................ 73 ? signal activity detect ........................................................................................................ ................................... 73 ? drc register controls ......................................................................................................... ................................ 74 ? retune tm mobile parametric equalizer (eq) ................................................ 83 ? default mode (5-band parametric eq) ........................................................................................... .................. 83 ? retune tm mobile mode................................................................................................................... .......................... 86 ? eq filter characteristics ..................................................................................................... .............................. 87 ? 3d stereo expansion ............................................................................................. 88 ? digital volume and filter control ................................................................. 89 ? aif1 - output path volume control ............................................................................................. ..................... 89 ? aif1 - output path high pass filter ........................................................................................... ........................ 92 ? aif1 - input path volume control .............................................................................................. ........................ 93 ? aif1 - input path soft mute control ........................................................................................... ..................... 96 ? aif1 - input path mono mix and de-emphasis filter ............................................................................. ........ 97 ? aif2 - output path volume control ............................................................................................. ..................... 97 ? aif2 - output path high pass filter ........................................................................................... ........................ 98 ? aif2 - input path volume control .............................................................................................. ........................ 99 ? aif2 - input path soft mute control ........................................................................................... ..................... 99 ? aif2 - input path mono mix and de-emphasis filter ............................................................................. ...... 100 ? digital to analogue converter (dac) .......................................................... 101 ? dac clocking control .......................................................................................................... ............................... 101 ? dac digital volume ............................................................................................................ .................................... 103 ? dac soft mute and soft un-mute ................................................................................................ ..................... 106 ? analogue output signal path ......................................................................... 108 ? output signal paths enable .................................................................................................... .......................... 109 ? headphone signal paths enable ................................................................................................. ..................... 111 ? output mixer control .......................................................................................................... ............................... 113 ? speaker mixer control ......................................................................................................... .............................. 117 ? output signal path volume control ............................................................................................. ................ 120 ? speaker boost mixer ........................................................................................................... ................................. 125 ? earpiece driver mixer ......................................................................................................... ................................. 125 ? line output mixers ............................................................................................................ .................................... 126 ? charge pump ........................................................................................................... 130 ? dc servo ................................................................................................................... 13 2 ? dc servo enable and start-up .................................................................................................. ....................... 132 ? dc servo active modes ......................................................................................................... ............................... 134 ? gpio / interrupt outputs from dc servo ........................................................................................ ............. 136 ?
WM8994 production data w pd, april 2012, rev 4.4 4 analogue outputs ............................................................................................... 137 ? speaker output configurations ................................................................................................. .................... 137 ? headphone output configurations ............................................................................................... ................ 140 ? earpiece driver output configurations ......................................................................................... ............ 141 ? line output configurations .................................................................................................... .......................... 141 ? general purpose input/output ...................................................................... 145 ? gpio control .................................................................................................................. ......................................... 145 ? gpio function select .......................................................................................................... ................................. 148 ? button detect (gpio input) .................................................................................................... ............................. 149 ? logic ?1? and logic ?0? output (gpio output) .................................................................................. ................ 149 ? sdout (4-wire spi control interface data) ..................................................................................... ............ 150 ? interrupt (irq) st atus output ................................................................................................. ......................... 150 ? over-temperature detection .................................................................................................... ....................... 150 ? accessory detection (micbias current detection) ............................................................................... . 151 ? frequency locked loop (fll) lock status output ................................................................................ .. 152 ? sample rate converter (src) lock status output ................................................................................ . 152 ? dynamic range control (drc) sign al activity detection ...................................................................... 15 2 ? control write sequencer status detection ...................................................................................... ...... 154 ? digital core fifo error status detection....................................................................................... ........... 154 ? opclk clock output ............................................................................................................ .................................. 155 ? fll clock output .............................................................................................................. ...................................... 155 ? interrupts .............................................................................................................. 156 ? digital audio interface ...................................................................................... 162 ? master and slave mode operation ............................................................................................... .................. 163 ? operation with tdm ............................................................................................................ ................................... 163 ? audio data formats (normal mode) .............................................................................................. .................. 164 ? audio data formats (tdm mode) ................................................................................................. ...................... 167 ? digital audio interface control ................................................................... 169 ? aif1 - master / slave and tri-state control ................................................................................... ............. 169 ? aif1 - signal path enable ..................................................................................................... ................................ 170 ? aif1 - bclk and lrclk control ................................................................................................. .......................... 170 ? aif1 - digital audio data control ............................................................................................. ........................ 173 ? aif1 - mono mode .............................................................................................................. ....................................... 174 ? aif1 - companding ............................................................................................................. ...................................... 175 ? aif1 - loopback ............................................................................................................... ......................................... 176 ? aif2 - master / slave and tri-state control ................................................................................... ............. 177 ? aif2 - signal path enable ..................................................................................................... ................................ 178 ? aif2 - bclk and lrclk control ................................................................................................. .......................... 178 ? aif2 - digital audio data control ............................................................................................. ........................ 181 ? aif2 - mono mode .............................................................................................................. ....................................... 182 ? aif2 - companding ............................................................................................................. ...................................... 183 ? aif2 - loopback ............................................................................................................... ......................................... 183 ? audio interface aif3 configuration ............................................................................................ .................. 184 ? digital pull-up and pull-down ................................................................................................. ......................... 186 ? clocking and sample rates .............................................................................. 187 ? aif1clk enable ................................................................................................................ ......................................... 188 ? aif1 clocking configuration ................................................................................................... ......................... 189 ? aif2clk enable ................................................................................................................ ......................................... 191 ? aif2 clocking configuration ................................................................................................... ......................... 191 ? miscellaneous clock controls .................................................................................................. .................... 193 ? bclk and lrclk control ........................................................................................................ .............................. 196 ? control interface clocking .................................................................................................... ........................ 196 ? frequency locked loop (fll) ................................................................................................... ......................... 197 ? free-running fll clock ........................................................................................................ ............................... 201 ? gpio outputs from fll ......................................................................................................... ................................ 203 ? example fll calculation ............................................................................................................................... ...... 203 ?
production data WM8994 w pd, april 2012, rev 4.4 5 example fll settings .......................................................................................................... .................................. 204 ? sample rate conversion ................................................................................... 205 ? sample rate converter 1 (src1) ................................................................................................ ...................... 205 ? sample rate converter 2 (src2) ................................................................................................ ...................... 205 ? sample rate converte r restrictions ............................................................................................ .............. 205 ? sample rate converter configur ation error indication ................................................................... 207 ? control interface ............................................................................................... 208 ? selection of control interface mode ........................................................................................... .............. 208 ? 2-wire (i2c) control mode ..................................................................................................... .............................. 209 ? 3-wire (spi) control mode ..................................................................................................... .............................. 212 ? 4-wire (spi) control mode ..................................................................................................... .............................. 213 ? control write sequencer ................................................................................ 214 ? initiating a sequence ............................................................................................................................... ............. 214 ? programming a sequence ........................................................................................................ .......................... 215 ? default sequences ............................................................................................................. .................................. 218 ? ldo regulators .................................................................................................... 224 ? pop suppression control ................................................................................ 227 ? disabled line output control .................................................................................................. ........................ 227 ? line output discharge control ................................................................................................. ..................... 228 ? vmid reference discharge control .............................................................................................. ................ 228 ? input vmid clamps ............................................................................................................. ..................................... 228 ? reference voltages and master bias ......................................................... 229 ? power management ............................................................................................. 230 ? thermal shutdown .............................................................................................. 235 ? power on reset..................................................................................................... 236 ? quick start-up and shutdown ........................................................................ 238 ? software reset and device id ......................................................................... 239 ? register map ................................................................................................ 240 ? register bits by address .................................................................................. 251 ? applications information ...................................................................... 345 ? recommended external components .......................................................... 345 ? audio input paths ............................................................................................................. ...................................... 345 ? headphone output path ......................................................................................................... ............................. 346 ? earpiece driver output path ................................................................................................... ......................... 347 ? line output paths ............................................................................................................. ..................................... 347 ? power supply decoupling ....................................................................................................... .......................... 348 ? charge pump components ........................................................................................................ ......................... 349 ? microphone bias circuit ....................................................................................................... .............................. 349 ? class d speaker connections ................................................................................................... ....................... 350 ? recommended external comp onents diagram ....................................................................................... .. 352 ? digital audio interface clocking configurations ................................. 353 ? pcb layout considerations ............................................................................. 356 ? class d loudspeaker connection ................................................................................................ .................. 356 ? package dimensions .................................................................................. 357 ? important notice ....................................................................................... 358 ? address: ................................................................................................................... 35 8 ? revision history ......................................................................................... 359 ?
WM8994 production data w pd, april 2012, rev 4.4 6 block diagram cpvdd cpgnd in1lp in1ln in1rn in2ln/dmicdat1 in2rn/dmicdat2 in1rp in2lp/vrxn in2rp/vrxp mixinr in1l in2l in2r in1r rxvoice mixinl cpca cpcb cpvoutn cpvoutp + - + - + - + - + - + + lineout1n lineout1p hpout1l hpout1r hpout2p in1r in1l mixinr mixinl rec l rec r hpout1fb charge pump rec l rec r dcvdd dbvdd dgnd spkgnd1 spkvdd1 ground loop noise rejection avdd2 hpout2n dc offset correction spkoutlp spkoutln + + direct voice direct voice spkoutrp spkoutrn direct voice direct voice + + in1lp in1ln in1rn in2ln in2rn in1rp in2lp/vrxn in2rp/vrxp spkmixl spkmixr mixoutl mixoutr lineout1nmix lineout1pmix hpout2mix headphone ground loop noise rejection input spkoutlboost spkoutrboost ground loop noise rejection dc offset correction -16.5db min +30db max 1.5db step -16.5db min +30db max 1.5db step -16.5db min +30db max 1.5db step -16.5db min +30db max 1.5db step -12db to +6db, 3db step 0db or +30db mixoutlvol hpout1lvol spklvol mixoutrvol hpout1rvol min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db spkrvol 0db or +30db -12db to +6db, 3db step 0db or +30db 0db or +30db -12db to +6db, 3db step -12db to +6db, 3db step 0db or -3db -21db to 0db, 3db step -21db to 0db, 3db step 0db or -3db 0db to +12db, 1.5db step 0db to +12db, 1.5db step 0db or -6db 0db or -6db 0db or -6db lineout2p lineout2n + lineout2pmix lineout2nmix 0db or -6db 0db or -6db control interface sda sclk adcdat1 adclrclk1/gpio1 bclk1 dacdat1 lrclk1 cifmode cs/addr gpio5/dacdat2 gpio6/adclrclk2 gpio3/bclk2 gpio4/lrclk2 gpio7/adcdat2 gpio8/dacdat3 dmicclk digital mic inputs dac 1l dac 1r adc l vs dac1l vol vs dac1r vol dac2l vol sample rate conversion (2 duplex channels max, not available where marked ) adc r dac2r vol dmicdat1 digital mic clock dmicdat2 + + gain codes v = full volume control (-71.625db to 0db, 0.375db steps for dac -71.625db to 17.625db, 0.375db steps for adc/mics) s = softmute/un-mute g = fixed gain control (-36db to 0db, 3db steps) [code] gg gg gg gg dynamic range control (drc) available on input or output channels, not both. mic activity detector (gpio) gpio2/mclk2 mclk1 micbias1 v ref avdd1 agnd vmidc micbias current detect reference generator micbias2 micbias current detect gpio gpio fll1 fll2 aif1clk aif2clk lrclk1 lrclk2 sysclk + + vs vs dac 2l dac 2r + + gpio9/adcdat3 spkmode lineoutfb line output ground loop noise rejection input mono speaker output mode select bclk1 bclk2 gpio10/lrclk3 gpio11/bclk3 lrclk1 lrclk2 bclk1 bclk2 vrefc ldo1ena ldo2ena voltage reference avdd2 ldo1vdd ldo2vdd avdd1 dcvdd ldo 1 ldo 2 ldo1vdd ldo2vdd refgnd spkgnd2 spkvdd2 hp2gnd direct dac1l direct dac1r ground loop noise rejection ground loop noise rejection + ground loop noise rejection ground loop noise rejection + -12db to +6db, 3db step -12db to +6db, 3db step digital audio interface 1 (aif1) 0r 0l 1r 1l 0r 0l 1r 1l digital audio interface 2 (aif2) 0r 0l 0r 0l left / right source select / mono mix control drc drc v vs left / right source select / mono mix control drc vs v + + + + 3d eq drc 3d eq drc 3d eq drc + +
production data WM8994 w pd, april 2012, rev 4.4 7 pin configuration ordering information order code temperature range package moisture sensitivity level peak soldering temperature WM8994ecs/r -40 ? c to +85 ? c 72-ball w-csp (pb-free, tape and reel) msl1 260 ? c note: reel quantity = 3500
WM8994 production data w pd, april 2012, rev 4.4 8 pin description a description of each pin on the WM8994 is provided below. note that a table detailing the associated power domain for every input and output pin is provided on the following page. note that, where multiple pins share a common name, these pins should be tied together on the pcb. pin no name type description f2 adcdat1 digital output audio interface 1 adc digital audio data g3 adclrclk1/ gpio1 digital input / output audio interface 1 adc left / right clock / general purpose pin gpio 1/ control interface data output d6, e7, e8 agnd supply analogue ground (return path for avdd1, avdd2 and ldo1vdd) d9 avdd1 supply / analogue output analogue core supply / ldo1 output d8 avdd2 supply bandgap reference, analogue class d and fll supply g1 bclk1 digital input / output audio interface 1 bit clock a4 cifmode digital input selects 2-wire or 3/4-wire control interface mode g8 cpca analogue output charge pump fly-back capacitor pin h8 cpcb analogue output charge pump fly-back capacitor pin h9 cpgnd supply charge pump ground (return path for cpvdd) g9 cpvdd supply charge pump supply h7 cpvoutn analogue output charge pump negative supply decoupling pin (hpout1l, hpout1r) g7 cpvoutp analogue output charge pump positive supply decoupling pin (hpout1l, hpout1r) g2 cs /addr digital input 3-/4-wire (spi) chip select or 2-wire (i2c) address select e4 dacdat1 digital input audio interface 1 dac digital audio data d2 dbvdd supply digital buffer (i/o) supply f1 dcvdd supply / analogue output digital core supply / ldo2 output e2 dgnd supply digital ground (return path for dcvdd, dbvdd and ldo2vdd) c6 dmicclk digital output digital mic clock output e1 gpio2/ mclk2 digital input general purpose pin gpi 2 / master clock 2 h2 gpio3/ bclk2 digital input / output general purpose pin gpio 3 / audio interface 2 bit clock f4 gpio4/ lrclk2 digital input / output general purpose pin gpio 4 / audio interface 2 left / right clock h3 gpio5/ dacdat2 digital input / output general purpose pin gpio 5 / audio interface 2 dac digital audio data g4 gpio6/ adclrclk2 digital input / output general purpose pin gpio 6 / audio interface 2 adc left / right clock e5 gpio7/ adcdat2 digital input / output general purpose pin gpio 7 / audio interface 2 adc digital audio data h4 gpio8/ dacdat3 digital input / output general purpose pin gpio 8 / audio interface 3 dac digital audio data f5 gpio9/ adcdat3 digital input / output general purpose pin gpio 9 / audio interface 3 adc digital audio data h5 gpio10/ lrclk3 digital input / output general purpose pin gpio 10 / audio interface 3 left / right clock f6 gpio11/ bclk3 digital input / output general purpose pin gpio 11 / audio interface 3 bit clock f7 hp2gnd supply analogue ground g5 hpout1fb analogue input hpout1l and hpout1r ground loop noise rejection feedback h6 hpout1l analogue output left headphone output g6 hpout1r analogue output right headphone output
production data WM8994 w pd, april 2012, rev 4.4 9 pin no name type description f9 hpout2n analogue output earpiece speaker inverted output f8 hpout2p analogue output earpiece speaker non-inverted output d7 in1ln analogue input left channel single-ended mic input / left channel negative differential mic input c8 in1lp analogue input left channel line input / left channel positive differential mic input b7 in1rn analogue input right channel single-ended mic input / right channel negative differential mic input c7 in1rp analogue input right channel line input / right channel positive differential mic input b9 in2ln/ dmicdat1 analogue input / digital input left channel line input / left channel negative differential mic input / digital mic data input 1 b8 in2lp/vrxn analogue input left channel line input / left channel positive differential mic input / mono differential negative input (rxvoice -) a9 in2rn/ dmicdat2 analogue input / digital input right channel line input / right channel negative differential mic input / digital mic data input 2 a8 in2rp/vrxp analogue input left channel line input / left channel positive differential mic input / mono differential positive input (rxvoice +) d4 ldo1ena digital input enable pin for ldo1 e9 ldo1vdd supply supply for ldo1 d5 ldo2ena digital input enable pin for ldo2 d1 ldo2vdd supply supply for ldo2 c5 lineout1n analogue output negative mono line output / positive left or right line output b5 lineout1p analogue output positive mono line output / positive left line output c4 lineout2n analogue output negative mono line output / positive left or right line output b4 lineout2p analogue output positive mono line output / positive left line output a6 lineoutfb analogue input line output ground loop noise rejection feedback e3 lrclk1 digital input / output audio interface 1 left / right clock d3 mclk1 digital input master clock 1 a7 micbias1 analogue output microphone bias 1 b6 micbias2 analogue output microphone bias 2 a5 refgnd supply analogue ground h1 sclk digital input control interface clock input f3 sda digital input / output control interface data input and output / 2-wire acknowledge output a1 spkgnd1 supply ground for speaker driver (return path for spkvdd1) c1 spkgnd2 supply ground for speaker driver (return path for spkvdd2) a3 spkmode digital input mono / stereo speaker mode select b1 spkoutln analogue output left speaker negative output a2 spkoutlp analogue output left speaker positive output c3 spkoutrn analogue output right speaker negative output b3 spkoutrp analogue output right speaker positive output b2 spkvdd1 supply supply for speaker driver 1 (left channel) c2 spkvdd2 supply supply for speaker driver 2 (right channel) c9 vmidc analogue output midrail voltage decoupling capacitor e6 vrefc analogue output bandgap reference decoupling capacitor
WM8994 production data w pd, april 2012, rev 4.4 10 the following table identifies the power domain and ground reference associated with each of the input / output pins. pin no name power domain ground domain f2 adcdat1 dbvdd dgnd g3 adclrclk1/ gpio1 dbvdd dgnd g1 bclk1 dbvdd dgnd g2 cs /addr dbvdd dgnd e4 dacdat1 dbvdd dgnd c6 dmicclk micbias1 agnd e1 gpio2/ mclk2 dbvdd dgnd h2 gpio3/ bclk2 dbvdd dgnd f4 gpio4/ lrclk2 dbvdd dgnd h3 gpio5/ dacdat2 dbvdd dgnd g4 gpio6/ adclrclk2 dbvdd dgnd e5 gpio7/ adcdat2 dbvdd dgnd h4 gpio8/ dacdat3 dbvdd dgnd f5 gpio9/ adcdat3 dbvdd dgnd h5 gpio10/ lrclk3 dbvdd dgnd f6 gpio11/ bclk3 dbvdd dgnd h6 hpout1l cpvoutp, cpvoutn cpgnd g6 hpout1r cpvoutp, cpvoutn cpgnd f9 hpout2n cpvoutp, cpvoutn cpgnd f8 hpout2p cpvoutp, cpvoutn cpgnd d7 in1ln avdd1 agnd c8 in1lp avdd1 agnd b7 in1rn avdd1 agnd c7 in1rp avdd1 agnd b9 in2ln/ dmicdat1 avdd1 (in2ln) or micbias1 (dmicdat1) agnd b8 in2lp/vrxn avdd1 agnd a9 in2rn/ dmicdat2 avdd1 (in2rn) or micbias1 (dmicdat2) agnd a8 in2rp/vrxp avdd1 agnd d4 ldo1ena dbvdd dgnd d5 ldo2ena dbvdd dgnd c5 lineout1n avdd1 agnd b5 lineout1p avdd1 agnd c4 lineout2n avdd1 agnd b4 lineout2p avdd1 agnd e3 lrclk1 dbvdd dgnd d3 mclk1 dbvdd dgnd h1 sclk dbvdd dgnd f3 sda dbvdd dgnd
production data WM8994 w pd, april 2012, rev 4.4 11 pin no name power domain ground domain a3 spkmode dbvdd dgnd b1 spkoutln spkvdd1 spkgnd1 a2 spkoutlp spkvdd1 spkgnd1 c3 spkoutrn spkvdd2 spkgnd2 b3 spkoutrp spkvdd2 spkgnd2 absolute maximum ratings absolute maximum ratings are stress ratings only. permanent damage to the device may be caused by continuously operating at or beyond these limits. device functional operati ng limits and guaranteed performance specifications are given under electrical characteristics at the test conditions specified. esd sensitive device. this device is manufactured on a cmos process. it is therefore generically susceptible to damage from excessive static voltages. proper esd precautions must be taken during handling and storage of this device. wolfson tests its package types according to ipc/jedec j-st d-020b for moisture sensitivity to determine acceptable storage conditions prior to surface mount assembly. these levels are: msl1 = unlimited floor life at <30 ? c / 85% relative humidity. not normally stored in moisture barrier bag. msl2 = out of bag storage for 1 year at <30 ? c / 60% relative humidity. supplied in moisture barrier bag. msl3 = out of bag storage for 168 hours at <30 ? c / 60% relative humidity. supplied in moisture barrier bag. the moisture sensitivity level for each package type is specified in ordering information. condition min max supply voltages (avdd1, dbvdd) -0.3v +4.5v supply voltages (avdd2, dcvdd, ldo2vdd) -0.3v +2.5v supply voltages (cpvdd) -0.3v +2.2v supply voltages (spkvdd1, spkvdd2, ldo1vdd) -0.3v +7.0v voltage range digital inputs (dbvdd domain) agnd - 0.3v dbvdd + 0.3v voltage range digital inputs (dmicdatn) agnd - 0.3v avdd1 + 0.3v voltage range analogue inputs (avdd1 domain) agnd - 0.3v avdd1 + 0.3v voltage range analogue inputs (lineoutfb) agnd - 0.3v avdd1 + 0.3v voltage range analogue inputs (hpout1fb) agnd - 0.3v agnd + 0.3v ground (dgnd, cpgnd, spkgnd1, spkgnd2, refgnd, hp2gnd) agnd - 0.3v agnd + 0.3v operating temperature range, t a -40oc +85oc junction temperature, t jmax -40oc +150oc storage temperature after soldering -65oc +150oc
WM8994 production data w pd, april 2012, rev 4.4 12 recommended operating conditions parameter symbol min typ max unit digital supply range (core) see notes 7, 8 dcvdd 0.95 1.0 2.0 v digital supply range (i/o) dbvdd 1.62 1.8 3.6 v analogue supply 1 range see notes 3, 4, 5, 6 avdd1 2.4 3.0 3.3 v analogue supply 2 range avdd2 1.71 1.8 2.0 v charge pump supply range cpvdd 1.71 1.8 2.0 v speaker supply range spkvdd1, spkvdd2 2.7 5.0 5.5 v ldo1 supply range ldo1vdd 2.7 5.0 5.5 v ldo2 supply range ldo2vdd 1.71 1.8 2.0 v ground dgnd, agnd, cpgnd, spkgnd1, spkgnd2, refgnd, hp2gnd 0 v power supply rise time see notes 9, 10, 11 all supplies 1 ? s operating temperature range t a -40 85 c ? notes 1. analogue, digital and speaker grounds must always be within 0.3v of agnd. 2. there is no power sequencing requirement; the supplies may be enabled in any order. 3. avdd1 must be less than or equal to spkvdd1 and spkvdd2. 4. an internal ldo (powered by ldo1vdd) can be used to provide the avdd1 supply. 5. when avdd1 is supplied externally (not from ldo1), the ldo1vdd voltage must be greater than or equal to avdd1 6. the WM8994 can operate with avdd1 tied to 0v; power consumption may be reduced, but the analogue audio functions will not be supported. 7. an internal ldo (powered by ldo2vdd) can be used to provide the dcvdd supply. 8. when dcvdd is supplied externally (not from ldo2), the ldo2vdd voltage must be greater than or equal to dcvdd 9. dcvdd and avdd1 minimum rise times do not apply when these domains are powered using the internal ldos. 10. the specified minimum power supply rise times assume a minimum decoupling capacitance of 100nf per pin. however, wolfson strongly advises that the recommended decoupling capacitors are present on the pcb and that appropriate layout guidelines are observed (see ?applications information? section). 11. the specified minimum power supply rise times also assume a maximum pcb inductance of 10nh between decoupling capacitor and pin.
production data WM8994 w pd, april 2012, rev 4.4 13 thermal performance thermal analysis should be performed in the intended application to prevent the WM8994 from exceeding maximum junction temperature. several contributing factors affect thermal performance most notably the physical properties of the mechanical enclosure, location of the device on the pcb in relation to surrounding components and the number of pcb layers. connecting the gnd balls through thermal vias and into a large ground plane will aid heat extraction. three main heat transfer paths exist to surrounding air as illustrated below in figure 1: - package top to air (radiation). - package bottom to pcb (radiation). - package balls to pcb (conduction). figure 1 heat transfer paths the temperature rise t r is given by t r = p d * ? ja - p d is the power dissipated in the device. - ? ja is the thermal resistance from the junction of the die to the ambient temperature and is therefore a measure of heat transfer from the die to surrounding air. ? ja is determined with reference to jedec standard jesd51-9. the junction temperature t j is given by t j = t a +t r , where t a is the ambient temperature. parameter symbol min typ max unit operating temperature range t a -40 85 c operating junction temperature t j -40 125 c thermal resistance ? ja 48 c/w note: junction temperature is a function of ambient temperature and of the device operating conditions. the ambient temperature limits and junction temperature limits must both be observed.
WM8994 production data w pd, april 2012, rev 4.4 14 electrical characteristics input signal level test conditions avdd1 = 3.0v. with the exception of the condition(s) noted above, the following elec trical characteristics are valid across the full range of recommended operating conditions. parameter test conditions min typ max unit a1 full-scale pga input signal level see notes 1, 2, 3 and 4 single-ended pga input 1.0 0 vrms dbv differential pga input 1.0 0 vrms dbv a2 full-scale line input signal level see notes 1, 2, 3 and 4 s ingle-ended line input to mixinl/r, spkmixl/r or mixoutl/r mixers 1.0 0 vrms dbv differential mono line input on vrxp/vrxn to rxvoice or direct voice paths to speaker outputs or earpiece output 1.0 0 vrms dbv notes: 1. the full-scale input signal level changes in proportion with avdd1. it is calculated as avdd1/3.0. 2. when mixing line inputs, input pga outputs and dac outputs the total signal must not exceed 1.0vrms (0dbv). 3. a 1.0vrms differential signal equates to 0.5vrms/-6dbv per input. 4. a sinusoidal input signal is assumed.
production data WM8994 w pd, april 2012, rev 4.4 15 input pin resistance test conditions t a = +25 o c. with the exception of the condition(s) noted above, the following elec trical characteristics are valid across the full range of recommended operating conditions. parameter test conditions min typ max unit b1 pga input resistance differential mode see note 5 see ?applications information? for details of input resistance at all pga gain settings. gain = -16.5db (innx_vol=00h) 53 k ? gain = 0db (innx_vol=0bh) 25 k ? gain = +30db (innx_vol=1fh) 1.3 k ? b2 pga input resistance single-ended mode see note 5 see ?applications information? for details of input resistance at all pga gain settings. gain = -16.5db (innx_vol=00h) 58 k ? gain = 0db (innx_vol=0bh) 36 k ? gain = +30db (innx_vol=1fh) 2.5 k ? b3 line input resistance see note 5 in1lp to mixinl, or in1rp to mixinr gain = -12db (in1xp_mixinx_vol=001) 56 k ? in1lp to mixinl, or in1rp to mixinr gain = 0db (in1xp_mixinx_vol=101) 17 k ? in1lp to mixinl, or in1rp to mixinr gain = +6db (in1xp_mixinx_vol=111) 9.8 k ? in1lp to mixinl, or in1rp to mixinr gain = +15db (in1xp_mixinx_vol=111, in1xp_mixinx_boost=1) 3.7 k ? in1lp to spkmixl, or in1rp to spkmixr (spkattn = -12db) 89 k ? in1lp to spkmixl, or in1rp to spkmixr (spkattn = 0db) 27 k ? in2ln, in2rn, in2lp or in2rp to mixoutl or mixoutr gain = -21db (*mixoutx_vol=111) 150 k ? in2ln, in2rn, in2lp or in2rp to mixoutl or mixoutr gain = -12db (*mixoutx_vol=100 59 k ?
WM8994 production data w pd, april 2012, rev 4.4 16 test conditions t a = +25 o c. with the exception of the condition(s) noted above, the following elec trical characteristics are valid across the full range of recommended operating conditions. parameter test conditions min typ max unit in2ln, in2rn, in2lp or in2rp to mixoutl or mixoutr gain = 0db (*mixoutx_vol=000) 18 k ? rxvoice to mixinl or mixinr gain = -12db (in2lrp_mixinx_vol=001) 48 k ? rxvoice to mixinl or mixinr gain = 0db (in2lrp_mixinx_vol=101) 12 k ? rxvoice to mixinl or mixinr gain = +6db (in2lrp_mixinx_vol=111) 6.0 k ? direct voice to earpiece gain = -6db (hpout2_vol=1) 20 k ? direct voice to earpiece gain = 0db (hpout2_vol=0) 10 k ? direct voice to speaker gain = 0db (spkoutx_boost=000) 170 k ? direct voice to speaker gain = +6db (spkoutx_boost=100) 85 k ? direct voice to speaker gain = +9db (spkoutx_boost=110) 60 k ? direct voice to speaker gain = +12db (spkoutx_boost=111) 43 k ? note 5 : input resistance will be seen in parallel with the resistance of other enabled input paths from the same pins
production data WM8994 w pd, april 2012, rev 4.4 17 programmable gains test conditions the following electrical characteristics are valid across the full range of recommended operating conditions. parameter test conditions min typ max unit input pgas (in1l, in2l, in1r and in2r) c1 minimum programmable gain guaranteed monotonic -16.5 db c2 maximum programmable gain +30 db c3 programmable gain step size 1.5 db input mixers (mixinl and mixinr) c6 minimum programmable gain input pga signal paths 0 db c7 maximum programmable gain +30 db c8 programmable gain step size 30 db c9 minimum programmable gain direct in1xp input signal paths (note the available gain settings are -12, -9, -6, -3, 0, +3, +6, +15db) -12 db c10 maximum programmable gain +15 db c11 programmable gain step size 3 db minimum programmable gain mixoutx record signal paths -12 db maximum programmable gain +6 db programmable gain step size 3 db c12 minimum programmable gain rxvoice (vrxp-vrxn) signal paths -12 db c13 maximum programmable gain +6 db c14 programmable gain step size 3 db output mixers (mixoutl and mixoutr) c17 minimum programmable gain -21 db c18 maximum programmable gain 0 db c19 programmable gain step size 3 db speaker mixers (spkmixl and spkmixr) c21 minimum programmable gain -15 db c22 maximum programmable gain 0 db c23 programmable gain step size 3 db output pgas (hpout1lvol, hpout1rvol, mixoutlvol, mixoutrvol, spklvol and spkrvol) c25 minimum programmable gain guaranteed monotonic -57 db c26 maximum programmable gain +6 db c27 programmable gain step size 1 db line output drivers (lineout1nmix, lineout1pmix, lineout2nmix and lineout2pmix) c29 minimum programmable gain -6 db c30 maximum programmable gain 0 db c31 programmable gain step size 6 db earpiece driver (hpout2mix) c33 minimum programmable gain -6 db c34 maximum programmable gain 0 db c35 programmable gain step size 6 db speaker output drivers (spkoutlboost and spkoutrboost) c38 minimum programmable gain (note the available gain settings are 0, +1.5, +3, +4.5, +6, +7.5, +9, +12db) 0 db c39 maximum programmable gain +12 db c40 programmable gain step size 1.5 db
WM8994 production data w pd, april 2012, rev 4.4 18 output driver characteristics test conditions the following electrical characteristics are valid across the full range of recommended operating conditions. parameter test conditions min typ max unit line output driver (lineout1p, lineout1n, lineout2p, lineout2n) load resistance 2 k ? load capacitance direct connection 100 pf connection via 1k ? series resistor 2000 output discharge resistance lineoutn_disch=1, vroi=0 8 k ? lineoutn_disch=1, vroi=1, lineoutn_ena=0 500 ? headphone output driver (hpout1l, hpout1r) load resistance normal operation 15 ? device survival with load applied indefinitely (see note 6) 100 m ? load capacitance 2 nf dc offset across load dc servo complete tbd mv earpiece output driver (hpout2l, hpout2r) load resistance 15 ? load capacitance direct connection 200 pf dc offset across load 5 mv speaker output driver (spkoutlp, spkoutln, spkoutrp, spkoutrn) load resistance stereo mode (spkmode=0), class ab 8 ? stereo mode (spkmode=0), class d 4 mono mode (spkmode=1) 4 dc offset across load 5 mv spkvdd leakage current sum of i spkvdd1 + i spkvdd2 1 a note 6 : in typical applications, the pcb trace resistance, jack c ontact resistance and esr of any series passive components (eg. inductor or ferrite bead) are sufficient to provide this mi nimum resistance; additional series components are not required .
production data WM8994 w pd, april 2012, rev 4.4 19 adc input path performance test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit d1 line inputs to adc via mixinl and mixinr snr a-weighted 94 db thd -1dbv input -83 db thd+n -1dbv input -81 db channel separation (l/r) 100 db psrr (all supplies) 100mv (pk-pk) 217hz 73 db d2 record path (dacs to adcs via mixinl and mixinr) snr a-weighted 92 db thd -1dbfs input -74 db thd+n -1dbfs input -72 db channel separation (l/r) 95 db d3 input pgas to adc via mixinl or mixinr snr a-weighted 84 95 db thd -1dbv input -82 -72 db thd+n -1dbv input -80 -70 db channel separation (l/r) 100 db psrr (avdd1) 100mv (pk-pk) 217hz 97 db d4 rxvoice to adcl or adcr snr a-weighted 94 db thd -1dbv input -84 db thd+n -1dbv input -82 db
WM8994 production data w pd, april 2012, rev 4.4 20 dac output path performance test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit e1 dac to single-ended line output (load = 10k ? // 50pf) snr a-weighted 93 db thd 0dbfs input -75 db thd+n 0dbfs input -73 db channel separation (l/r) 70 db psrr (all supplies) 100mv (pk-pk) 217hz 36 db lineoutfb rejection lineoutn_fb=1, 100mv (pk-pk) 217hz 38 db e2 dac to differential line output (load = 10k ? // 50pf) snr a-weighted 97 db thd 0dbfs input -76 db thd+n 0dbfs input -75 db channel separation (l/r) 90 db psrr (all supplies) 100mv (pk-pk) 217hz 51 db e5 dac to headphone on hpout1l or hpout1r (load = 32 ? ) snr (a-weighted) dac_osr128=1 100 db dac_osr128=0 97 db thd p o =20mw -74 db thd+n p o =20mw -72 db thd p o =5mw -76 db thd+n p o =5mw -74 db channel separation (l/r) 95 db psrr (all supplies) 100mv (pk-pk) 217hz 51 db hpout1fb rejection 100mv (pk-pk) 217hz 29 db e6 dac to headphone on hpout1l or hpout1r (load = 16 ? ) snr (a-weighted) dac_osr128=1 90 100 db dac_osr128=0 97 db thd p o =20mw -82 db thd+n p o =20mw -80 db thd p o =5mw -83 -73 db thd+n p o =5mw -81 -71 db channel separation (l/r) 95 db psrr (all supplies) 100mv (pk-pk) 217hz 51 db hpout1fb rejection 100mv (pk-pk) 217hz 29 db
production data WM8994 w pd, april 2012, rev 4.4 21 test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit e9 dac to earpiece driver (load = 16 ? btl) snr a-weighted 97 db thd p o =50mw -71 db thd+n p o =50mw -69 db psrr (all supplies) 100mv (pk-pk) 217hz 51 db e12 dac to speaker outputs (load = 8 ? + 22 ? h btl, stereo mode) class d mode, +12db boost (spkoutx_boost = 111) snr a-weighted 85 94 db thd p o =0.5w -65 db thd+n p o =0.5w -63 -53 db thd p o =1.0w -70 db thd+n p o =1.0w -68 db psrr (all supplies) 100mv (pk-pk) 217hz 43 db channel separation (l/r) 80 db dac to speaker outputs (load = 8 ? + 22 ? h btl, stereo mode) class ab mode, +12db boost (spkoutx_boost = 111) snr a-weighted 96 db thd p o =0.5w -67 db thd+n p o =0.5w -65 db thd p o =1.0w -64 db thd+n p o =1.0w -62 db psrr (all supplies) 100mv (pk-pk) 217hz 43 db channel separation (l/r) 80 db dac to speaker outputs (load = 4 ? + 22 ? h btl, stereo mode) class d mode, +12db boost (spkoutx_boost = 111) snr a-weighted 93 db thd p o =0.5w db thd+n p o =0.5w -63 db thd p o =1.0w db thd+n p o =1.0w -63 db thd p o =2.0w thd+n p o =2.0w -66 psrr (all supplies) 100mv (pk-pk) 217hz db channel separation (l/r) db
WM8994 production data w pd, april 2012, rev 4.4 22 test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit e13 speaker output power (load = 8 ? + 22 ? h btl, stereo mode) output power spkvdd1= spkvdd2=5.0v thd+n 1% class ab 1 w class d 1 spkvdd1= spkvdd2=4.2v thd+n 1% class ab 0.95 class d 0.95 spkvdd1= spkvdd2=3.7v thd+n 1% class ab 0.75 class d 0.75 note that the maximum recommended speaker output power is 1w per channel into 8 ? . output levels that exceed this limit are not guaranteed and may cause damage to the WM8994. speaker output power (load = 4 ? + 22 ? h btl, stereo mode) output power spkvdd1= spkvdd2=5.0v thd+n 1% class d (see note below) 2.3 w spkvdd1= spkvdd2=4.2v thd+n 1% class d 1.6 spkvdd1= spkvdd2=3.7v thd+n 1% class d 1.2 speaker output power (load = 4 ? + 22 ? h btl, mono mode) output power spkvdd1= spkvdd2=5.0v thd+n 1% class ab (see note below) 2.7 w class d (see note below) 2.7 note that the maximum recommended speaker output power is 2w per channel into 4 ? . output levels that exceed this limit are not guaranteed and may cause damage to the WM8994.
production data WM8994 w pd, april 2012, rev 4.4 23 bypass path performance test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit f1 input pga to differential line output (load = 10k ? // 50pf) snr a-weighted 100 db thd 0dbv output -90 db thd+n 0dbv output -87 db f3 input pga to headphone via mixoutl or mixoutr (load = 16 ? ) snr a-weighted 98 db thd p o =20mw -89 db thd+n p o =20mw -87 db thd p o =5mw -86 db thd+n p o =5mw -84 db psrr (all supplies) 100mv (pk-pk) 217hz 49 db channel separation (l/r) 95 db f2 line input (in2lp or in2rp) to headphone via mixoutl or mixoutr (load = 16 ? ) snr a-weighted 100 db thd p o =20mw -86 db thd+n p o =20mw -84 db thd p o =5mw -84 db thd+n p o =5mw -82 db psrr (all supplies) 100mv (pk-pk) 217hz 49 db f4 line input (in2ln or in2rn) to headphone via mixoutl or mixoutr (load = 16 ? ) snr a-weighted 100 db thd p o =20mw -84 db thd+n p o =20mw -82 db thd p o =5mw -82 db thd+n p o =5mw -80 db psrr (all supplies) 100mv (pk-pk) 217hz 49 db channel separation (l/r) 95 db
WM8994 production data w pd, april 2012, rev 4.4 24 test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit f5 direct voice path to earpiece driver (load = 16 ? btl) snr a-weighted 90 104 db thd p o =50mw -70 db thd+n p o =50mw -68 -60 db psrr (all supplies) 100mv (pk-pk) 217hz 91 db f6 direct voice path to speaker outputs (load = 8 ? + 22 ? h btl, stereo mode) class d mode, +12db boost (spkoutx_boost = 111) snr a-weighted 97 db thd p o =0.5w -62 db thd+n p o =0.5w -60 db thd p o =1.0w -67 db thd+n p o =1.0w -65 db psrr (all supplies) 100mv (pk-pk) 217hz 63 db direct voice path to speaker outputs (load = 8 ? + 22 ? h btl, stereo mode) class ab mode, +12db boost (spkoutx_boost = 111) snr a-weighted 103 db thd p o =0.5w -62 db thd+n p o =0.5w -60 db thd p o =1.0w -64 db thd+n p o =1.0w -62 db psrr (all supplies) 100mv (pk-pk) 217hz 67 db f7 line input to speaker outputs via spkmixl or spkmixr (load = 8 ? + 22 ? h btl, stereo mode) class d mode, +12db boost (spkoutx_boost = 111) snr a-weighted 93 db thd p o =0.5w -62 db thd+n p o =0.5w -60 db thd p o =1.0w -67 db thd+n p o =1.0w -65 db psrr (all supplies) 100mv (pk-pk) 217hz 47 db line input to speaker outputs via spkmixl or spkmixr (load = 8 ? + 22 ? h btl, stereo mode) class ab mode, +12db boost (spkoutx_boost = 111) snr a-weighted 96 db thd p o =0.5w -72 db thd+n p o =0.5w -68 db thd p o =1.0w -64 db thd+n p o =1.0w -62 db psrr (all supplies) 100mv (pk-pk) 217hz 47 db
production data WM8994 w pd, april 2012, rev 4.4 25 multi-path crosstalk test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit g1 headset voice call: dac/headset to tx voice separation 1khz 0dbfs dac playback direct to hpout1l and hpout1r; quiescent input on in1ln/p or in1rn/p (gain=+12db), differential line output; measure crosstalk at differential line output 85 db g2 speakerphone voice call: dac/speaker to tx voice separation 1khz 0dbfs dac playback to speakers, 1w/chan output; quiescent input on in1ln/p or in1rn/p (gain=+12db), differential line output; measure crosstalk at differential line output c ros s ta l k 100 db g3 earpiece pcm voice call: rxvoice to tx voice separation fs=8khz for adc and dac, dac_sb_filt=1; -5dbfs, dac output to hpout2p-hpout2n; quiescent input on input pga (gain=+12db) to adc via mixinl or mixinr; measure crosstalk at adc output 110 db g4 speakerphone pcm voice call: dac/speaker to adc separation fs=8khz for adc and dac, dac_sb_filt=1; 0dbfs dac output to speaker (1w output); adc record from input pga (gain=+30db); measure crosstalk on adc output 90 db g5 speakerphone pcm voice call: adc to dac/speaker separation fs=8khz for adc and dac, dac_sb_filt=1; quiescent dac output to speaker; adc record from input pga (gain=+30db + 30db boost); measure crosstalk on speaker output 95 db
WM8994 production data w pd, april 2012, rev 4.4 26 test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, 1khz sinusoidal signal, fs = 48khz, pga gain = 0db, 24-bit audio data unless otherwise stated. parameter test conditions min typ max unit g6 earpiece speaker voice call: tx voice and rxvoice separation 1khz full scale differential input on vrxp-vrxn, output to hpout2p-hpout2n; quiescent input on in1ln/p or in1rn/p (gain=+12db), differential line output; measure crosstalk at differential line output 100 db g7 headset voice call: tx voice and rxvoice separation 1khz full scale differential input on vrxp-vrxn via rxvoice to mixoutl and mixoutr, output to hpout1l and hpout1r; quiescent input on in1ln/p or in1rn/p (gain=+12db), differential line output; measure crosstalk at differential line output - + +12db in1l or in1r (single-ended or differential mode) 0db 0db + 0db + 0db mixoutl mixoutr full scale input quiescent input rxvoice (mixinl or mixinr) - + in1ln or in1rn in1lp or in1rp vrxn vrxp hpout1l hpout1r lineout1p or lineout2p lineout1n or lineout2n lineout1nmix or lineout2nmix hpout1lvol hpout1rvol lineout1pmix or lineout2pmix 90 db g8 stereo line record and playback: dac/headset to adc separation -5dbfs input to dacs, playback to hpout1l and hpout1r; adc record from line input; measure crosstalk on adc output dacr hpout1lvol 0db dacl hpout1rvol 0db + mixinl or mixinr adcl or adcr crosstalk quiescent input hpout1l hpout1r in1lp or in1rp 95 db
production data WM8994 w pd, april 2012, rev 4.4 27 digital input / output test conditions the following electrical characteristics are valid across the full range of recommended operating conditions. parameter test conditions min typ max unit digital input / output (except dmicdatn and dmicclk) h16 input high level, v ih 0.8 ? dbvdd v h17 input low level, v il 0.2 ? dbvdd v note that digital input pins should not be left unconnected / floating. h18 output high level, v oh i ol =1ma 0.8 ? dbvdd v h19 output low level, v ol i oh =-1ma 0.2 ? dbvdd v h20 input capacitance 10 pf h21 input leakage -0.9 0.9 ? a digital microphone input / output (dmicdatn and dmicclk) h22 dmicdatn input high level, v ih 0.65 ? micbias1 v h23 dmicdatn input low level, v il 0.35 x micbias1 v h24 dmicclk output high level, v oh i ol =1ma 0.8 ? micbias1 v h25 dmicclk output low level, v ol i oh =-1ma 0.2 x micbias1 v h26 input capacitance 10 pf h27 input leakage -0.9 0.9 ? a digital filter characteristics test conditions the following electrical characteristics are valid across the full range of recommended operating conditions. parameter test conditions min typ max unit adc decimation filter passband +/- 0.05db 0 0.454 fs -6db 0.5 fs passband ripple +/- 0.05 db stopband 0.546 fs stopband attenuation f > 0.546 fs -85 db group delay 2 ms dac interpolation filter passband +/- 0.05db 0 0.454 fs -6db 0.5 fs passband ripple 0.454 fs +/- 0.05 db stopband 0.546 fs stopband attenuation f > 0.546 fs -85 db group delay 2 ms
WM8994 production data w pd, april 2012, rev 4.4 28 microphone bias characteristics test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, unless otherwise stated. parameter test conditions min typ max unit microphone bias (micbias1 and micbias2) h2 bias voltage 2.4ma load current micbn_lvl=0 -5% 0.9 ? avdd1 +5% v 2.4ma load current micbn_lvl=1 -5% 0.65 ? avdd1 +5% v h3 bias current 2.4 ma h4 output noise spectral density 1khz to 20khz 100 nv/ ? hz output discharge resistance micbn_ena=0, micbn_disch=1 1 k ? h6 mic current detect thresholds micd_thr = 00 150 ? a micd_thr = 01 300 ? a micd_thr = 10 600 ? a micd_thr = 11 1200 ? a ? mic short circuit detect thresholds mic_scthr = 00 300 ? a mic_scthr = 01 600 ? a mic_scthr = 10 1200 ? a mic_scthr = 11 2400 ? a current detect and short circuit detect thresholds are subject to a +/-50% across temperature, supply and part-to-part variation. this should be factored into any application design.
production data WM8994 w pd, april 2012, rev 4.4 29 miscellaneous characteristics test conditions avdd1=3.0v (powered from ldo1), dcvdd=1.0v (pow ered from ldo2), avdd2=d bvdd=ldo2vdd= cpvdd=1.8v, ldo1vdd=spkvdd1=spkvdd2=5v, dgnd=agnd=cpgnd=spkgnd1=spkgnd2=hp2gnd=0v, t a = +25 o c, unless otherwise stated. parameter test conditions min typ max unit analogue reference levels h1 vmid midrail reference voltage vmid_sel = 01, 4.7 ? f capacitor on vmidc -3% avdd1/2 +3% v vmid start-up time vmid_sel = 01, vmid_ramp = 11, 4.7 ? f capacitor on vmidc 50 ms frequency locked loops (flls) h29 lock time f ref =32khz, f out =12.288mhz 2.5 ms f ref =12mhz, f out =12.288mhz 300 ? s h30 free-running mode start-up time vmid enabled 100 ? s h31 free-running mode frequency accuracy reference supplied initially +/-10 % no reference provided +/-30 % ldo regulators h38 ldo1 start-up time 4.7 ? f capacitor on avdd1, 1 ? f capacitor on vrefc 1.5 ms ldo1 drop-out voltage (ldo1vdd - avdd1) 300 mv ldo1 psrr (ldo1vdd) 100mv (pk-pk) 217hz tbd db h42 ldo2 start-up time 1 ? f capacitor on dcvdd, 1 ? f capacitor on vrefc 1.5 ms ldo2 psrr (ldo2vdd) 100mv (pk-pk) 217hz tbd db
WM8994 production data w pd, april 2012, rev 4.4 30 terminology 1. signal-to-noise ratio (db) ? snr is a measure of the difference in level between the maximum full scale output signal and the output with no input signal applied. 2. total harmonic distortion (db) ? thd is the level of the rm s value of the sum of harmonic distortion products relative to the amplitude of the measured output signal. 3. total harmonic distortion plus noise (db) ? thd+n is the level of the rms value of the sum of harmonic distortion products plus noise in the specified bandwidth relative to the amplitude of the measured output signal. 4. power supply rejection ratio (db) - psrr is the rati o of a specified power supply variation relative to the output signal that results from it. psrr is m easured under quiescent signal path conditions. 5. common mode rejection ratio (db) ? cmrr is the rati o of a specified input signal (applied to both sides of a differential input), relative to the output signal that results from it. 6. channel separation (l/r) (db) ? left-to-right and right-to-left channel separation is the difference in level between the active channel (driven to maximum full scale output) and the measured signal level in the idle channel at the test signal frequency. the active channel is configured and s upplied with an appropriate input signal to drive a full scale output, with signal measured at the output of the associated idle channel. 7. multi-path crosstalk (db) ? is the difference in level between the output of the active path and the measured signal level in the idle path at the test signal frequency. the active path is configured and supplied with an appropriate input signal to drive a full scale output, with signal measured at the output of the specified idle path. 8. mute attenuation ? this is a measure of the difference in level between the full scale output signal and the output with mute applied. 9. all performance measurements carried out with 20khz lo w pass filter, and where noted an a-weighted filter. failure to use such a filter will result in higher thd and lower snr readings than are found in the electrical characteristics. the low pass filter removes out of band noise; although it is not audible it may affect dynamic specification values.
production data WM8994 w pd, april 2012, rev 4.4 31 typical performance typical power consumption operating mode test conditions spkvdd (note 3) ldo1vdd avdd2 cpvdd dbvdd ldo2vdd total off (battery leakage only) ldo1 disabled, ldo2 disabled 4.2v 1.1 ? a 4.2v 0.4 ? a 0.0v 5.5 ? a 0.0v 5 ? a 0.0v 9.3 ? a 0.0v 0.2 ? a 0.01mw standby ldo1 disabled, ldo2 enabled all supplies present, no clocks, default register settings 4.2v 1.8 ? a 4.2v 1 ? a 1.8v 60 ? a 1.8v 5 ? a 1.8v 20 ? a 1.8v 42 ? a 0.2mw standby ldo1 enabled, ldo2 enabled all supplies present, no clocks, default register settings 4.2v 1.8 ? a 4.2v 89 ? a 1.8v 65 ? a 1.8v 5 ? a 1.8v 30 ? a 1.8v 42 ? a 0.6mw music playback to headphone (32ohm load) aif1 to dac to hpout1 (stereo) fs=44.1khz, clocking rate=256fs, 24-bit i2s, slave mode 4.2v 0.0ma 4.2v 2.05ma 1.8v 0.32ma 1.8v 0.48ma 1.8v 0.04ma 1.8v 1.09ma 12.1mw aif1 to dac to hpout1 (stereo) ldos disabled, see note 5 fs=44.1khz, clocking rate=128fs, 24-bit i2s, slave mode, class w 3.6v 0.0ma avdd1= 2.4v 1.43ma 1.8v 0.21ma 1.8v 0.21ma 1.8v 0.01ma dcvdd= 1.0v 0.94ma 5.34mw music playback to class d speaker output (8ohm, 22 ? h load) aif1 to dac to spkout (stereo) fs=44.1khz, clocking rate=256fs, 24-bit i2s, slave mode, +7.5db class d boost 4.2v 1.65ma 4.2v 2.36ma 1.8v 1.24ma 1.8v 0.01ma 1.8v 0.04ma 1.8v 1.09ma 21.1mw aif1 to dac to spkout (left) fs=44.1khz, clocking rate=256fs, 24-bit i2s, slave mode, +0.0db class d boost 4.2v 0.74ma 4.2v 2.34ma 1.8v 0.79ma 1.8v 0.01ma 1.8v 0.04ma 1.8v 1.09ma 16.4mw aif1 to aif3 mono digital bypass (eg. bluetooth video call) aif1(l) to aif3(l), aif3(l) to aif1(l) fs=8khz, clocking rate=256fs, 24-bit i2s, slave mode 4.2v 0.0ma 4.2v 0.09ma 1.8v 0.07ma 1.8v 0.01ma 1.8v 0.08ma 1.8v 0.33ma 1.2mw aif2 to aif3 mono digital bypass (eg. bluetooth voice call) aif2(l) to aif3(l), aif3(l) to aif2(l) fs=8khz, clocking rate=256fs, 24-bit i2s, slave mode 4.2v 0.002ma 4.2v 0.089ma 1.8v 0.065ma 1.8v 0.003ma 1.8v 0.039ma 1.8v 0.272ma 1.1mw notes: 1. avdd1 = 3.0v, generated by ldo1 2. dcvdd = 1.0v, generated by ldo2 3. spkvdd = spkvdd1 = spkvdd2. 4. i spkvdd = i spkvdd1 + i spkvdd2 . 5. power consumption for music playback with ldos di sabled requires an external supply for avdd1 and dcvdd
WM8994 production data w pd, april 2012, rev 4.4 32 typical signal latency operating mode test conditions latency aif1 aif2 digital core aif2 to dac stereo path aif2 eq enabled, aif2 3d enabled, aif2 drc enabled, src enabled fs=8khz, clock rate = 256fs fs=8khz, clock rate = 1536fs sysclk=aif1clk 1.4ms fs=48khz, clock rate = 256fs fs=8khz, clock rate = 1536fs sysclk=aif1clk 1.3ms fs=8khz, clock rate = 256fs fs=8khz, clock rate = 256fs sysclk=aif1clk 1.7ms fs=48khz, clock rate = 256fs fs=8khz, clock rate = 256fs sysclk=aif1clk 1.4ms adc to aif2 stereo path digital sidetone hpf enabled, aif2 drc enabled, aif2 hpf enabled, src enabled fs=8khz, clock rate = 256fs fs=8khz, clock rate = 256fs sysclk=aif1clk 2.2ms fs=48khz, clock rate = 256fs fs=8khz, clock rate = 256fs sysclk=aif1clk 1.2ms digital sidetone hpf disabled, aif2 drc disabled, aif2 hpf disabled, src disabled fs=8khz, clock rate = 1536fs sysclk=aif2clk 1.3ms digital sidetone hpf disabled, aif2 drc disabled, aif2 hpf disabled, src enabled fs=48khz, clock rate = 256fs fs=8khz, clock rate = 1536fs sysclk=aif1clk 1.1ms notes: 1. these figures are relevant to typical voice call modes, assuming aif2 is connected to the baseband processor 2. the src (sample rate converter) is enabled automatically whenever required
production data WM8994 w pd, april 2012, rev 4.4 33 speaker driver performance typical speaker driver thd+n performance is shown below for class d and class ab modes. curves are shown for typical spkvdd supply voltage, gain and load conditions. 0.01 0.1 1 10 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 thd+n ratio (%) output power (w) thd+n vs. output power class d, mono (spkmode=1), 8 ? + 10h spkvdd ? =3.3v spkvdd ? =3.7v spkvdd ? =5.0v spkvdd ? =4.5v spkvdd ? =4.2v 0.01 0.1 1 10 00.511.522.53 thd+n ratio (%) output power (w) thd+n vs. output power class d, mono (spkmode=1), 4 ? + 10h spkvdd ? =3.3v spkvdd ? =3.7v spkvdd ? =5.0v spkvdd ? =4.5v spkvdd ? =4.2v 0.01 0.1 1 10 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 thd+n ratio (%) output power (w) thd+n vs. output power class ab, mono (spkmode=1), 8 ? + 10h spkvdd ? =3.3v spkvdd ? =3.7v spkvdd ? =5.0v spkvdd ? =4.5v spkvdd ? =4.2v 0.01 0.1 1 10 00.511.522.53 thd+n ratio (%) output power (w) thd+n vs. output power class ab, mono (spkmode=1), 4 ? + 10h spkvdd ? =3.3v spkvdd ? =3.7v spkvdd ? =5.0v spkvdd ? =4.5v spkvdd ? =4.2v 0.01 0.1 1 10 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 thd+n ratio (%) output power (w) thd+n vs. output power class d, stereo (spkmode=0), 8 ? + 10h spkvdd ? =3.3v spkvdd ? =3.7v spkvdd ? =5.0v spkvdd ? =4.5v spkvdd ? =4.2v 0.01 0.1 1 10 00.511.522.53 thd+n ratio (%) output power (w) thd+n vs. output power class d, stereo (spkmode=0), load = 4 ? + 10h spkvdd ? =3.3v spkvdd ? =3.7v spkvdd ? =5.0v spkvdd ? =4.5v spkvdd ? =4.2v 0.01 0.1 1 10 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 thd+n ratio (%) output power (w) thd+n vs. output power class ab, stereo (spkmode=0), 8 ? + 10h spkvdd ? =3.3v spkvdd ? =3.7v spkvdd ? =5.0v spkvdd ? =4.5v spkvdd ? =4.2v
WM8994 production data w pd, april 2012, rev 4.4 34 signal timing requirements system clocks & frequency locked loop (fll) figure 2 master clock timing test conditions the following timing information is valid across the full range of recommended operating conditions. parameter symbol conditions min typ max unit master clock timing (mclk1 and mclk2) mclk cycle time t mclky mclk as input to fll, flln_refclk_div = 01, 10, 11 37 ns mclk as input to fll, flln_refclk_div = 00 74 fll not used, aifnclk_div = 1 40 fll not used, aifnclk_div = 0 80 mclk duty cycle (= t mclkh : t mclkl ) 60:40 40:60 frequency locked loops (fll1 and fll2) fll input frequency flln_refclk_div = 00 0.032 13.5 mhz flln_refclk_div = 01 0.064 27 flln_refclk_div = 10 0.128 27 flln_refclk_div = 11 0.256 27 internal clocking aif1clk frequency 12.5 mhz aif2clk frequency 12.5 mhz sysclk frequency 12.5 mhz
production data WM8994 w pd, april 2012, rev 4.4 35 audio interface timing digital microphone (dmic) interface timing figure 3 digital microphone interface timing test conditions the following timing information is valid across the full range of recommended operating conditions. parameter symbol min typ max unit digital microphone interface timing dmicclk cycle time t cy 320 ns dmicclk duty cycle 45:55 55:45 dmicdat (left) setup time to falling dmicclk edge t lsu 15 ns dmicdat (left) hold time from falling dmicclk edge t lh 0 ns dmicdat (right) setup time to rising dmicclk edge t rsu 15 ns dmicdat (right) hold time from rising dmicclk edge t rh 0 ns
WM8994 production data w pd, april 2012, rev 4.4 36 digital audio interface - master mode bclk (output) lrclk (output) adcdat (output) dacdat (input) t dda t dht t dst t dl t bcy v oh v ol v oh v ol v oh v ol v ih v il figure 4 audio interface timing - master mode note that bclk and lrclk outputs can be inverted if required; figure 4 shows the default, non- inverted polarity of these signals. test conditions the following timing information is valid across the full range of recommended operating conditions. parameter symbol min typ max unit audio interface timing - master mode bclk cycle time t bcy 160 ns lrclk propagation delay from bclk falling edge t dl 20 ns adcdat propagation delay from bclk falling edge t dda 48 ns dacdat setup time to bclk rising edge t dst 32 ns dacdat hold time from bclk rising edge t dht 10 ns audio interface timing - ultrasonic (4fs) master mode bclk cycle time t bcy 80 ns adcdat propagation delay from bclk falling edge t dda 24 ns note that the descriptions above assume non-inverted polarity of bclk and lrclk.
production data WM8994 w pd, april 2012, rev 4.4 37 digital audio interface - slave mode figure 5 audio interface timing - slave mode note that bclk and lrclk inputs can be inverted if required; figure 5 shows the default, non- inverted polarity. test conditions the following timing information is valid across the full range of recommended operating conditions. parameter symbol min typ max unit audio interface timing - slave mode bclk cycle time t bcy 160 ns bclk pulse width high t bch 64 ns bclk pulse width low t bcl 64 ns lrclk set-up time to bclk rising edge t lrsu 10 ns lrclk hold time from bclk rising edge t lrh 10 ns dacdat hold time from bclk rising edge t dh 10 ns adcdat propagation delay from bclk falling edge t dd 48 ns dacdat set-up time to bclk rising edge t ds 32 ns note that the descriptions above assume non-inverted polarity of bclk and lrclk.
WM8994 production data w pd, april 2012, rev 4.4 38 digital audio interface - tdm mode when tdm operation is used on the adcdatn pins, it is important that two devices do not attempt to drive the adcdatn pin simultaneously. to support this requirement, the adcdatn pins can be configured to be tri-stated when not outputting data. the timing of the WM8994 adcdatn tri-stating at the start and end of the data transmission is described in figure 6 below. bclk adcdat adcdat set-up time adcdat release time adcdat undriven (tri-state) adcdat valid (codec output) adcdat valid adcdat undriven (tri-state) figure 6 audio interface timing - tdm mode test conditions the following timing information is valid across the full range of recommended operating conditions. parameter min typ max unit tdm timing - master mode adcdat setup time from bclk falling edge 0 ns adcdat release time from bclk falling edge 15 ns tdm timing - slave mode adcdat setup time from bclk falling edge 5 ns adcdat release time from bclk falling edge 32 ns
production data WM8994 w pd, april 2012, rev 4.4 39 control interface timing 2-wire (i2c) control mode figure 7 control interface timing - 2-wire (i2c) control mode test conditions the following timing information is valid across the full range of recommended operating conditions. parameter symbol min typ max unit sclk frequency 400 khz sclk low pulse-width t 1 1300 ns sclk high pulse-width t 2 600 ns hold time (start condition) t 3 600 ns setup time (start condition) t 4 600 ns data setup time t 5 100 ns sda, sclk rise time t 6 300 ns sda, sclk fall time t 7 300 ns setup time (stop condition) t 8 600 ns data hold time t 9 900 ns pulse width of spikes that will be suppressed t ps 0 5 ns
WM8994 production data w pd, april 2012, rev 4.4 40 3-wire (spi) control mode cs (input) sclk (input) sda (input) t csu t sch t scl t scy t dho t dsu t cho figure 8 control interface timing - 3-wire (spi) control mode (write cycle) figure 9 control interface timing - 3-wire (spi) control mode (read cycle) test conditions the following timing information is valid across the full range of recommended operating conditions. parameter symbol min typ max unit cs falling edge to sclk rising edge t csu 40 ns sclk falling edge to cs rising edge t cho 10 ns sclk pulse cycle time t scy 200 ns sclk pulse width low t scl 80 ns sclk pulse width high t sch 80 ns sda to sclk set-up time t dsu 40 ns sda to sclk hold time t dho 10 ns pulse width of spikes that will be suppressed t ps 0 5 ns sclk falling edge to sda output transition t dl 40 ns
production data WM8994 w pd, april 2012, rev 4.4 41 4-wire (spi) control mode cs (input) sclk (input) sda (input) t csu t sch t scl t scy t dho t dsu t cho figure 10 control interface timing - 4-wire (spi) control mode (write cycle) sclk (input) sdout (output) t dl cs (input) figure 11 control interface timing - 4-wire (spi) control mode (read cycle) test conditions the following timing information is valid across the full range of recommended operating conditions. parameter symbol min typ max unit cs falling edge to sclk rising edge t csu 40 ns sclk falling edge to cs rising edge t cho 10 ns sclk pulse cycle time t scy 200 ns sclk pulse width low t scl 80 ns sclk pulse width high t sch 80 ns sda to sclk set-up time t dsu 40 ns sda to sclk hold time t dho 10 ns pulse width of spikes that will be suppressed t ps 0 5 ns sclk falling edge to sdout transition t dl 40 ns
WM8994 production data w pd, april 2012, rev 4.4 42 device description introduction the WM8994 is a low power, high quality audio codec designed to interface with a wide range of processors and analogue components. a high level of mixed-signal integration in a very small footprint makes it ideal for portable applications such as mobile phones. fully differential internal architecture and on-chip rf noise filters ensure a very high degree of noise immunity. the analogue circuits of the WM8994 are almost entirely backwards-compatible with the wm8993 with the exception of two additional dac channels, a dual fll and two integrated ldo regulators. three sets of audio interface pins are available in order to provide independent and fully asynchronous connections to multiple processors, typically an application processor, baseband processor and wireless transceiver. any two of these interfaces can operate totally independently and asynchronously while the third interface can be synchronised to either of the other two and can also provide ultra low power loopback modes to support, for example, wireless headset voice calls. four digital microphone input channels are available to support advanced multi-microphone applications such as noise cancellation. an i ntegrated microphone activity monitor is available to enable the processor to sleep during periods of microphone inactivity, saving power. four dac channels are available to support use cases requiring up to four simultaneous digital audio streams to the output drivers. eight highly flexible analogue inputs allow inter facing to up to four microphone inputs (single-ended or differential), plus multiple stereo or mono line inputs. connections to an external voice codec, fm radio, line input, handset mic and headset mic are all fully supported. signal routing to the output mixers and within the codec has been designed for maximum flexibility to support a wide variety of usage modes. a ?direct voice? path from a voice codec directly to the speaker or earpiece output drivers is included. nine analogue output drivers are integrated, including a stereo pair of high power, high quality class d/ab switchable speaker drivers; these can support 2w each in stereo mode. it is also possible to configure the speaker drivers as a mono output, giving enhanced performance. a mono earpiece driver is provided, providing output from the output mixers or from the low-power differential ?direct voice? path. one pair of ground-reference headphone outputs is provided; these are powered from an integrated charge pump, enabling high quality, power efficient headphone playback without any requirement for dc blocking capacitors. a dc servo circuit is available for dc offset correction, thereby suppressing pops and reducing power consumption. four line outputs are provided, with multiple configuration options including 4 x single-ended output or 2 x differential outputs. the line outputs are suitable for output to a voice codec, an external speaker driver or line output connector. ground loop feedback is available on the headphone outputs and the line outputs, providing rejection of noise on the ground connections. all outputs have integrated pop and click suppression features. internal differential signal routing and amplifier configurations have been optimised to provide the highest performance and lowest possible power consumption for a wide range of usage scenarios, including voice calls and music playback. the speaker drivers offer low leakage and high psrr; this enables direct connection to a lithium battery. the s peaker drivers provide eight levels of ac and dc gain to allow output signal levels to be max imised for many commonl y-used spkv dd/avdd1 combinations. the adcs and dacs are of hi-fi quality, using a 24-bit low-order oversampling architecture to deliver optimum performance. a flexible clocking arrangement supports mixed sample rates, whilst integrated ultra-low power dual flls provide additional flexibility. a high pass filter is available in all adc and digital mic paths for removing dc offsets and suppressing low frequency noise such as mechanical vibration and wind noise. a digital mixing path from the adc or digital mics to the dac provides a sidetone of enhanced quality during voice calls. dac soft mute and un-mute is available for pop-free music playback. the integrated dynamic range controllers (drc) and retune tm mobile 5-band parametric equaliser (eq) provide further processing capability of the digital audio paths. the drc provides compression and signal level control to improve the handling of unpredictable signal levels. ?anti-clip? and ?quick release? algorithms improve intelligibility in the presence of transients and impulsive noises. the eq provides the capability to tailor the audio path according to the frequency characteristics of an earpiece or loudspeaker, and/or according to user preferences.
production data WM8994 w pd, april 2012, rev 4.4 43 the WM8994 has highly flexible digital audio inter faces, supporting a number of protocols, including i 2 s, dsp, msb-first left/right justified, and can operate in master or slave modes. pcm operation is supported in the dsp mode. a-law and ? -law companding are also supported. time division multiplexing (tdm) is available to allow multiple devices to stream data simultaneously on the same bus, saving space and power. the four digital mic and adc channels and four dac channels are available via four tdm channels on digital audio interface 1 (aif1). a powerful digital mixing core allows data from each tdm channel of each audio interface and from the adcs and digital mics to be mixed and re-routed back to a different audio interface and to the 4 dac output channels. the digital mixing core can operate synchronously with either audio interface 1 or audio interface 2, with asynchronous stereo full duplex sample rate conversion performed on the other audio interface as required. the system clock (sysclk) provides clocking for the adcs, dacs, dsp core, digital audio interface and other circuits. sysclk can be derived directly from one of the mclk1 or mclk2 pins or via one of two integrated flls, providing flexibility to support a wide range of clocking schemes. typical portable system mclk frequencies, and sample rates from 8khz to 96khz are all supported. automatic configuration of the clocking circuits is available, derived from the sample rate and from the mclk / sysclk ratio. the WM8994 uses a standard 2, 3 or 4-wire control interface, providing full software control of all features, together with device register readback. an integrated control write sequencer enables automatic scheduling of control sequences; commonly-used signal configurations may be selected using ready-programmed sequences, including time-optimised control of the WM8994 pop suppression features. it is an ideal partner for a wide range of industry standard microprocessors, controllers and dsps. unused circuitry can be di sabled under software control, in order to save power; low leakage currents enable extended standby/off time in portable battery-powered applications. versatile gpio functionality is provided, with s upport for button/accessory detect inputs, or for clock, system status, or programmable logic level output for control of additional external circuitry. interrupt logic, status readback and de-bouncing options are supported within this functionality.
WM8994 production data w pd, april 2012, rev 4.4 44 analogue input signal path the WM8994 has eight highly flexible analogue input channels, configurable in a large number of combinations: 1. up to four fully differential or single-ended microphone inputs 2. up to eight mono line inputs or 4 stereo line inputs 3. a dedicated mono differential input from external voice codec these inputs may be mixed together or independently routed to different combinations of output drivers. an internal record path is provided at the input mixers to allow dac output to be mixed with the input signal path (e.g. for voice call recording). the WM8994 input signal paths and control registers are illustrated in figure 12. figure 12 control registers for input signal path
production data WM8994 w pd, april 2012, rev 4.4 45 microphone inputs up to four microphones can be connected to the WM8994, either in single-ended or differential mode. a dedicated pga is provided for each microphone input. two low noise microphone bias circuits are provided, reducing the need for external components. for single-ended microphone inputs, the microphone signal is connected to the inverting input of the pgas (in1ln, in2ln, in1rn or in2rn). the non- inverting inputs of the pgas are internally connected to vmid in this configuration. the non-inverting input pins in1lp, in2lp, in1rp and in2rp are free to be used as line connections to the input or output mixers in this configuration. for differential microphone inputs, the non-inverted microphone signal is connected to the non- inverting input of the pgas (in1lp, in2lp, in1rp or in2rp), whilst the inverted (or ?noisy ground?) signal is connected to the inverting input pi ns (in1ln, in2ln, in1rn and in2rn). the gain of the input pgas is controlled via register settings, as defined in table 4. note that the input impedance of both inverting and non-inverting inputs changes with the input pga gain setting, as described under ?electrical characteristics?. see also the ?applications information? for details of input resistance at all pga gain settings. the microphone input configurations are illustrated in figure 13 and figure 14. note that any pga input pin that is used in either microphone configuration is not available for use as a line input path at the same time. figure 13 single-ended microphone input figure 14 differential microphone input microphone bias control there are two micbias generators which provide low noise reference voltages suitable for powering silicon (mems) microphones or biasing electret condenser (ecm) type microphones via an external resistor. the micbias voltages can be independently enabled using the micb1_ena and micb2_ena control bits; the voltage of each can be selected using the micb1_lvl and micb2_lvl register bits as detailed in table 1. an external decoupling capacitor is requir ed on each of the micbias outputs, and must be connected whenever the associated micbias output is enabled. enabling either of the micbias outputs with no external capacitor may result in degraded device performance and is not recommended. refer to the ?applications information? section for recommended external components. when a micbias output is disabled, the output pin can be configured to be floating or to be actively discharged. this is selected using the micb1_disch and micb2_disch register btis.
WM8994 production data w pd, april 2012, rev 4.4 46 register address bit label default description r1 (0001h) power managem ent (1) 5 micb2_ena 0 microphone bias 2 enable 0 = disabled 1 = enabled 4 micb1_ena 0 microphone bias 1 enable 0 = disabled 1 = enabled r57 (0039h) antipop (2) 8 micb2_disch 0 microphone bias 2 discharge 0 = micbias2 floating when disabled 1 = micbias2 discharged when disabled 7 micb1_disch 0 microphone bias 1 discharge 0 = micbias1 floating when disabled 1 = micbias1 discharged when disabled r58 (003ah) micbias 1 micb2_lvl 0 microphone bias 2 voltage control 0 = 0.9 * avdd1 1 = 0.65 * avdd1 0 micb1_lvl 0 microphone bias 1 voltage control 0 = 0.9 * avdd1 1 = 0.65 * avdd1 table 1 microphone bias control note that the maximum source current capability for micbias1 and micbias2 is 2.4ma each. the external biasing resistance must be large enoug h to limit each micbias current to 2.4ma across the full microphone impedance range. an external capacitor is required on micbias1 and micbias2 in order to ensure accuracy and stability of each regulator. the recommended capacitance is 4.7 ? f in each case. see ?recommended external components? for further details. note that, if the micbias1 or micbias2 regulator is not enabled, then no external capacitor is required on the respective micbias pin. microphone current detect a micbias current detect function allows detection of accessories such as headset microphones. when the micbias load current exceeds one of two programmable thresholds, (e.g. short circuit current or normal operating current), an interrupt or gpio output can be generated. the current detection circuit is enabled by the micd_ena bit; the current thresholds are selected by the micd_thr and micd_scthr register fields as described in table 83. see ?general purpose input/output? for a full description of these fields.
production data WM8994 w pd, april 2012, rev 4.4 47 line and voice codec inputs all eight analogue input pins may be used as line inputs. each line input has different signal path options, providing flexibility, high performance and low power consumption for many different usage modes. in1ln and in1rn can operate as single-ended line inputs to the input pgas in1l and in1r respectively. these inputs provide a high gain path if required for low input signal levels. in2ln and in2rn can operate as single-ended line inputs to the input pgas in2l and in2r respectively, providing further high gain signal paths . these pins can also be connected to either of the output mixers mixoutl and mixoutr. in1lp and in1rp can operate as single-ended line inputs to the input mixers mixinl and mixinr, or to the speaker mixers spkmixl and spkmixr. these signal paths enable power consumption to be reduced, by allowing the input pgas and other circuits to be disabled if not required. in2lp/vrxn and in2rp/vrxp can operate in three different ways: ? mono differential ?rxvoice? input (e.g. from an external voice codec) to the input mixers mixinl and mixinr. ? single-ended line inputs to either of the output mixers mixoutl and mixoutr. ? ultra-low power mono differential ?direct voice? input (e.g. from an external voice codec) to the ear speaker driver on hpout2, or to either of the speaker drivers on spkoutl and spkoutr. signal path configuration to the input pgas and input mixers is detailed later in this section. signal path configuration to the output mixers and speaker mixers is described in ?analogue output signal path?. the line input and voice codec input configurations are illustrated in figure 15 through to figure 18. mixinl/r + - pga vmid in1ln or in1rn line input figure 15 in1ln or in1rn as line inputs figure 16 in2ln or in2rn as line inputs + - pga vmid in1lp, in1rp line input mixinl/r spkmixl/r figure 17 in1lp or in1rp as line inputs figure 18 in2lp or in2rp as line inputs
WM8994 production data w pd, april 2012, rev 4.4 48 input pga enable the input pgas are enabled using register bits in1l_ena, in2l_ena, in1r_ena and in2r_ena, as described in table 2. the input pgas must be enabled for microphone input on the respective input pins, or for line input on the inverting input pins in1ln, in1rn, in2ln, in2rn. register address bit label default description r2 (0002h) power management (2) 7 in2l_ena 0 in2l input pga enable 0 = disabled 1 = enabled 6 in1l_ena 0 in1l input pga enable 0 = disabled 1 = enabled 5 in2r_ena 0 in2r input pga enable 0 = disabled 1 = enabled 4 in1r_ena 0 in1r input pga enable 0 = disabled 1 = enabled table 2 input pga enable for normal operation of the input pgas, the reference voltage vmid and the bias current must also be enabled. see ?reference voltages and master bias? for details of the associated controls vmid_sel and bias_ena. input pga configuration each of the input pgas can operate in a single-ended or differential mode. in differential mode, both inputs to the pga are connected to the input source. in single-ended mode, the non-inverting input to the pga must be connected to vmid. configuration of the pga inputs to the WM8994 input pins is controlled using the register bits shown in table 3. single-ended microphone operation is configured by connecting the input source to the inverting input of the applicable pga. the non-inverting input of the pga must be connected to the buffered vmid reference. note that the buffered vmid reference must be enabled, using the vmid_buf_ena register, as described in ?reference voltages and master bias?. differential microphone operation is configured by connecting the input source to both inputs of the applicable pga. line inputs to the input pins in1ln, in2ln, in 1rn and in2rn must be connected to the applicable pga. the non-inverting input of the pga must be connected to vmid. line inputs to the input pins in1lp, in2lp, in1r p or in2rp do not connect to the input pgas. the non-inverting inputs of the associated pgas must be connected to vmid. the inverting inputs of the associated pgas may be used as separate mic/line inputs if required. the maximum available attenuation on any of these input paths is achieved by using register bits shown in table 3 to disconnect the input pins from the applicable pga. register address bit label default description r40 (0028h) input mixer (2) 7 in2lp_to_in2l 0 in2l pga non-inverting input select 0 = connected to vmid 1 = connected to in2lp note that vmid_buf_ena must be set when using in2l connected to vmid.
production data WM8994 w pd, april 2012, rev 4.4 49 register address bit label default description 6 in2ln_to_in2l 0 in2l pga inverting input select 0 = not connected 1 = connected to in2ln 5 in1lp_to_in1l 0 in1l pga non-inverting input select 0 = connected to vmid 1 = connected to in1lp note that vmid_buf_ena must be set when using in1l connected to vmid. 4 in1ln_to_in1l 0 in1l pga inverting input select 0 = not connected 1 = connected to in1ln 3 in2rp_to_in2r 0 in2r pga non-inverting input select 0 = connected to vmid 1 = connected to in2rp note that vmid_buf_ena must be set when using in2r connected to vmid. 2 in2rn_to_in2r 0 in2r pga inverting input select 0 = not connected 1 = connected to in2rn 1 in1rp_to_in1r 0 in1r pga non-inverting input select 0 = connected to vmid 1 = connected to in1rp note that vmid_buf_ena must be set when using in1r connected to vmid. 0 in1rn_to_in1r 0 in1r pga inverting input select 0 = not connected 1 = connected to in1rn table 3 input pga configuration input pga volume control each of the four input pgas has an independently controlled gain range of -16.5db to +30db in 1.5db steps. the gains on the inverting and non-inverting inputs to the pgas are always equal. each input pga can be independently muted using the pga mute bits as described in table 4, with maximum mute attenuation achieved by simultaneously disconnec ting the corresponding inputs described in table 3. note that, under default conditions (following power-up or software reset), the pga mute register bits are set to ?1?, but the mute functions will only become effective after the respective bit has been toggled to ?0? and then back to ?1?. the input pgas will be un-muted (mute disabled) after power-up or software reset, regardless of the readback value of the respective pga mute bits. to prevent "zipper noise", a zero-cross function is provided on the input pgas. when this feature is enabled, volume updates will not take place until a zero-crossing is detected. in the case of a long period without zero-crossings, a timeout function is provided. when the zero-cross function is enabled, the volume will update after the timeout period if no earlier zero-cross has occurred. the timeout clock is enabled using toclk_ena, the timeout period is set by toclk_div. see ?clocking and sample rates? for more information on these fields. the in1_vu and in2_vu bits control the loading of the input pga volume data. when in1_vu and in2_vu are set to 0, the pga volume data will be loaded i nto the respective control register, but will not actually change the gain setting. the in1l and in1r volume settings are both updated when a 1 is written to in1_vu; the in2l and in2r volume settings are both updated when a 1 is written to in2_vu. this makes it possible to update the gai n of the left and right signal paths simultaneously. the input pga volume control register fields are described in table 4 and table 5.
WM8994 production data w pd, april 2012, rev 4.4 50 register address bit label default description r24 (0018h) left line input 1&2 volume 8 in1_vu n/a input pga volume update writing a 1 to this bit will cause in1l and in1r input pga volumes to be updated simultaneously 7 in1l_mute 1 in1l pga mute 0 = disable mute 1 = enable mute 6 in1l_zc 0 in1l pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in1l_vol [4:0] 01011 (0db) in1l volume -16.5db to +30db in 1.5db steps (see table 5 for volume range) r25 (0019h) left line input 3&4 volume 8 in2_vu n/a input pga volume update writing a 1 to this bit will cause in2l and in2r input pga volumes to be updated simultaneously 7 in2l_mute 1 in2l pga mute 0 = disable mute 1 = enable mute 6 in2l_zc 0 in2l pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in2l_vol [4:0] 01011 (0db) in2l volume -16.5db to +30db in 1.5db steps (see table 5 for volume range) r26 (001ah) right line input 1&2 volume 8 in1_vu n/a input pga volume update writing a 1 to this bit will cause in1l and in1r input pga volumes to be updated simultaneously 7 in1r_mute 1 in1r pga mute 0 = disable mute 1 = enable mute 6 in1r_zc 0 in1r pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in1r_vol [4:0] 01011 (0db) in1r volume -16.5db to +30db in 1.5db steps (see table 5 for volume range) r27 (001bh) right line input 3&4 volume 8 in2_vu n/a input pga volume update writing a 1 to this bit will cause in2l and in2r input pga volumes to be updated simultaneously 7 in2r_mute 1 in2r pga mute 0 = disable mute 1 = enable mute 6 in2r_zc 0 in2r pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in2r_vol [4:0] 01011 (0db) in2r volume -16.5db to +30db in 1.5db steps (see table 5 for volume range) table 4 input pga volume control
production data WM8994 w pd, april 2012, rev 4.4 51 in1l_vol[4:0], in2l_vol[4:0], in1r_vol[4:0], in2r_vol[4:0] volume (db) 00000 -16.5 00001 -15.0 00010 -13.5 00011 -12.0 00100 -10.5 00101 -9.0 00110 -7.5 00111 -6.0 01000 -4.5 01001 -3.0 01010 -1.5 01011 0 01100 +1.5 01101 +3.0 01110 +4.5 01111 +6.0 10000 +7.5 10001 +9.0 10010 +10.5 10011 +12.0 10100 +13.5 10101 +15.0 10110 +16.5 10111 +18.0 11000 +19.5 11001 +21.0 11010 +22.5 11011 +24.0 11100 +25.5 11101 +27.0 11110 +28.5 11111 +30.0 table 5 input pga volume range
WM8994 production data w pd, april 2012, rev 4.4 52 input mixer enable the WM8994 has two analogue input mixers which allow the input pgas and line inputs to be combined in a number of ways and output to the adcs, output mixers, or directly to the output drivers via bypass paths. the input mixers mixinl and mixinr are enabled by the mixinl_ena and mixinr_ena register bits, as described in table 6. these control bits also enable the rxvoice input path, described in the following section. for normal operation of the input mixers, the reference voltage vmid and the bias current must also be enabled. see ?reference voltages and master bias? for details of the associated controls vmid_sel and bias_ena. register address bit label default description r2 (0002h) power management (2) 9 mixinl_ena 0 left input mixer enable (enables mixinl and rxvoice input to mixinl) 0 = disabled 1 = enabled 8 mixinr_ena 0 right input mixer enable (enables mixinr and rxvoice input to mixinr) 0 = disabled 1 = enabled table 6 input mixer enable input mixer configuration and volume control the left and right channel input mixers mixinl and mixinr can be configured to take input from up to five sources: 1. in1l or in1r input pga 2. in2l or in2r input pga 3. in1lp or in1rp pin (pga bypass) 4. rxvoice mono differential input from in2lp/vrxn and in2rp/vrxp 5. mixoutl or mixoutr output mixer (record path) the input mixer configuration and volume controls are described in table 7 for the left input mixer (mixinl) and table 8 for the right input mixer (mixinr). the signal levels from the input pgas may be set to mute, 0db or 30db boost. gain controls for the pga bypass, rxvoice and record paths provide adjustment from -12db to +6db in 3db steps. when using the in1lp or in1rp signal paths direct to the input mixers (pga bypass paths), a signal gain of +15db can be selected using the in1rp_mi xinr_boost or in1lp_mixinl_boost register bits. see table 7 and table 8 for further details. when using the in1lp or in1rp signal paths direct to the input mixers (pga bypass paths), the buffered vmid reference must be enabled, using the vmid_buf_ena register, as described in ?reference voltages and master bias?. to prevent pop noise, it is recommended that gain and mute controls for the input mixers are not modified while the signal paths are active. if volume control is required on these signal paths, it is recommended that this is implemented using the input pga volume controls or the adc volume controls. the adc volume controls are described in the ?analogue to digital converter (adc)? section.
production data WM8994 w pd, april 2012, rev 4.4 53 register address bit label default description r21 (0015h) input mixer (1) 7 in1lp_mixinl_boost 0 in1lp pin (pga bypass) to mixinl gain boost. this bit selects the maximum gain setting of the in1lp_mixinl_vol register. 0 = maximum gain is +6db 1 = maximum gain is +15db r41 (0029h) input mixer (3) 8 in2l_to_mixinl 0 in2l pga output to mixinl mute 0 = mute 1 = un-mute 7 in2l_mixinl_vol 0 in2l pga output to mixinl gain 0 = 0db 1 = +30db 5 in1l_to_mixinl 0 in1l pga output to mixinl mute 0 = mute 1 = un-mute 4 in1l_mixinl_vol 0 in1l pga output to mixinl gain 0 = 0db 1 = +30db 2:0 mixoutl_mixinl_vol [2:0] 000 (mute) record path mixoutl to mixinl gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db r43 (002bh) input mixer (5) 8:6 in1lp_mixinl_vol [2:0] 000 (mute) in1lp pin (pga bypass) to mixinl gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db (see note below). when in1lp_mixinl_boost is set, then the maximum gain setting is increased to +15db, ie. 111 = +15db. note that vmid_buf_ena must be set when using the in1lp (pga bypass) input to mixinl.
WM8994 production data w pd, april 2012, rev 4.4 54 register address bit label default description 2:0 in2lrp_mixinl_vol [2:0] 000 (mute) rxvoice differential input (vrxp-vrxn) to mixinl gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db table 7 left input mixer (mixinl) volume control register address bit label default description r21 (0015h) input mixer (1) 8 in1rp_mixinr_boost 0 in1rp pin (pga bypass) to mixinr gain boost. this bit selects the maximum gain setting of the in1rp_mixinr_vol register. 0 = maximum gain is +6db 1 = maximum gain is +15db r42 (002a) input mixer (4) 8 in2r_to_mixinr 0 in2r pga output to mixinr mute 0 = mute 1 = un-mute 7 in2r_mixinr_vol 0 in2r pga output to mixinr gain 0 = 0db 1 = +30db 5 in1r_to_mixinr 0 in1r pga output to mixinr mute 0 = mute 1 = un-mute 4 in1r_mixinr_vol 0 in1r pga output to mixinr gain 0 = 0db 1 = +30db 2:0 mixoutr_mixinr_vol [2:0] 000 (mute) record path mixoutr to mixinr gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db
production data WM8994 w pd, april 2012, rev 4.4 55 register address bit label default description r44 (002ch) input mixer (6) 8:6 in1rp_mixinr_vol [2:0] 000 (mute) in1rp pin (pga bypass) to mixinr gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db (see note below). when in1rp_mixinr_boost is set, then the maximum gain setting is increased to +15db, ie. 111 = +15db. note that vmid_buf_ena must be set when using the in1rp (pga bypass) input to mixinr. 2:0 in2lrp_mixinr_vol [2:0] 000 (mute) rxvoice differential input (vrxp-vrxn) to mixinr gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db table 8 right input mixer (mixinr) volume control
WM8994 production data w pd, april 2012, rev 4.4 56 digital microphone interface the WM8994 supports a four-channel digital microphone interface. two channels of audio data are multiplexed on the dmicdat1 pin and a further two channels are multiplexed on the dmicdat2 pin. all four channels are clocked using the dmicclk output pin. the dmicdat1 function is shared with the in2ln pin; the analogue signal paths from in2ln cannot be used when this pin is used for dmicdat1 digital microphone input. the dmicdat2 function is shared with the in 2rn pin; the analogue signal paths from in2rn cannot be used when this pin is used for dmicdat2 digital microphone input. the digital microphone interface is referenced to the micbias1 voltage domain; the micbias1 output must be enabled (micb1_ena = 1) when using the digital microphone interface. the micbias1 generator is suitable for use as a low noise supply for the digital microphones. (see ?analogue input signal path? for details of the micbias1 generator.) when digital microphone input is enabled, the WM8994 outputs a clock signal on the dmicclk pin. the dmicclk frequency for all supported digital micr ophone clocking modes is described later in this section. a pair of digital microphones is connected as illustrated in figure 19. the microphones must be configured to ensure that the left mic transmits a data bit when dmicclk is high, and the right mic transmits a data bit when dmicclk is low. the WM8994 samples the digital microphone data at the end of each dmicclk phase. each microphone must tri-state its data output when the other microphone is transmitting. figure 19 digital microphone input the dmicdat1 digital microphone channels are enabled using dmic1l_ena and dmic1r_ena. when these signal paths are enabled, the respecti ve adc path is disconnected and the digital microphone data is routed to the digital mixing input bus, as illustrated in ?digital mixing?. the dmicdat2 digital microphone channels are enabled using dmic2l_ena and dmic2r_ena. when these signal paths are enabled, the digital microphone data is routed to the digital mixing input bus, as illustrated in ?digital mixing?. two microphone channels are interleaved on dmicdat1; another two channels are interleaved on dmicdat2. the timing is illustrated in figure 20. each microphone must tri-state its data output when the other microphone is transmitting.
production data WM8994 w pd, april 2012, rev 4.4 57 figure 20 digital microphone interface timing the four digital microphone channels can be routed to one of the four timeslots on aif1. the dmicdat1 microphones, when enabled, are routed to the left/right channels of aif1 timeslot 0. the dmicdat2 microphones, when enabled, are routed to the left/right channels of aif1 timeslot 1. digital volume control of the digital microphone channels in the aif1 signal paths is provided using the registers described in the ?digital volume and filter control? section. the digital microphone channels can be routed, in a limited number of configurations, to the digital mixing output bus, via the digital sidetone signal paths. see ?digital mixing? for further details. digital volume control of the digital microphone channels in the digital sidetone signal paths is provided using the registers described in the ?digital mixing? section. the digital microphone interface control fields are described in table 9. register address bit label default description r4 (0004h) power managemen t (4) 5 dmic2l_ena 0 digital microphone dmicdat2 left channel enable 0 = disabled 1 = enabled 4 dmic2r_ena 0 digital microphone dmicdat2 right channel enable 0 = disabled 1 = enabled 3 dmic1l_ena 0 digital microphone dmicdat1 left channel enable 0 = disabled 1 = enabled 2 dmic1r_ena 0 digital microphone dmicdat1 right channel enable 0 = disabled 1 = enabled table 9 digital microphone interface control
WM8994 production data w pd, april 2012, rev 4.4 58 clocking for the digital microphone interface is derived from sysclk. the dmicclk frequency is configured automatically, according to the aifn_sr, aifnclk_rate and adc_osr128 registers. (see ?clocking and sample rates? for further details of the system clocks and control registers.) the dmicclk is enabled whenever a digital microphone input path is enabled on the dmicdat1 or dmicdat2 pin(s). note that the sysdspclk_ena register must also be set. when aif1clk is selected as the sysclk source (sysclk_src = 0), then the dmicclk frequency is controlled by the aif1_sr and aif1clk_rate registers. when aif2clk is selected as the sysclk source (sysclk_src = 1), then the dmicclk frequency is controlled by the aif2_sr and aif2clk_rate registers. the dmicclk frequency is as described in tabl e 10 (for adc_osr128=1) and table 11 (for adc_osr128=0). the adc_osr128 bit is set by default, giving best audio performance. note that the only valid dmicclk configurations are the ones listed in table 10 and table 11. the applicable clocks (sysclk, and aif1clk or aif2clk) must be present and enabled when using the digital microphone interface. sample rate (khz) sysclk rate (aifnclk / fs ratio) 128 192 256 384 512 768 1024 1536 8 2.048 2.048 2.048 11.025 2.8224 2.8224 12 3.072 3.072 16 2.048 2.048 2.048 22.05 2.8224 2.8224 24 3.072 3.072 32 2.048 44.1 2.8224 48 3.072 88.2 96 note that, when adc_osr128=1, digital microphone operation is only supported for the above dmicclk configurations. table 10 dmicclk frequency (mhz) - adc_osr128 = 1 (default) sample rate (khz) sysclk rate (aifnclk / fs ratio) 128 192 256 384 512 768 1024 1536 8 1.024 1.024 1.024 1.024 1.024 11.025 1.4112 1.4112 1.4112 1.4112 12 1.536 1.536 1.536 1.536 16 1.024 1.024 1.024 1.024 22.05 1.4112 1.4112 1.4112 24 1.536 1.536 1.536 32 2.048 2.048 44.1 2.8224 48 3.072 88.2 96 note that, when adc_osr128=0, digital microphone operation is only supported for the above dmicclk configurations. table 11 dmicclk frequency (mhz) - adc_osr128 = 0
production data WM8994 w pd, april 2012, rev 4.4 59 digital pull-up and pull-down the WM8994 provides integrated pull-up and pull-down resistors on the dmicdat1 and dmicdat2 pins. this provides a flexible capability for interfacing with other devices. each of the pull-up and pull- down resistors can be configured independently using the register bits described in table 12. note that, if the dmicdat1 or dmicdat2 digital microphone channels are disabled, or if dmicdatn_pu and dmicdatn_pd are both set, then the pull-up and pull-down will be disabled on the respective pin. register address bit label default description r1824 (0720h) pull control (1) 11 dmicdat2_pu 0 dmicdat2 pull-up enable 0 = disabled 1 = enabled 10 dmicdat2_pd 0 dmicdat2 pull-down enable 0 = disabled 1 = enabled 9 dmicdat1_pu 0 dmicdat1 pull-up enable 0 = disabled 1 = enabled 8 dmicdat1_pd 0 dmicdat1 pull-down enable 0 = disabled 1 = enabled table 12 digital pull-up and pull-down control analogue to digital converter (adc) the WM8994 uses stereo 24-bit sigma-delta adcs. the use of multi-bit feedback and high oversampling rates reduces the effects of jitter and high frequency noise. the oversample rate can be adjusted, if required, to reduce power consumption - see ?clocking and sample rates? for details. the adc full scale input level is proportional to avdd1 - see ?electrical characteristics?. any input signal greater than full scale may overload the adc and cause distortion. the adcs are enabled by the adcl_ena and adcr_ena register bits. register address bit label default description r4 (0004h) power management (4) 1 adcl_ena 0 left adc enable 0 = disabled 1 = enabled 0 adcr_ena 0 right adc enable 0 = disabled 1 = enabled table 13 adc enable control the outputs of the adcs can be routed to the left/right channels of aif1 (timeslot 0). digital volume control of the adc outputs in the ai f1 signal paths is provided using the registers described in the ?digital volume and filter control? section. the outputs of the adcs can be routed, in a limited number of configurations, to the digital mixing output bus, via the digital sidetone signal paths. see ?digital mixing? for further details. digital volume control of the adc outputs in the digital sidetone signal paths is provided using the registers described in the ?digital mixing? section.
WM8994 production data w pd, april 2012, rev 4.4 60 adc clocking control clocking for the adcs is derived from sy sclk. the required clock is enabled when the sysdspclk_ena register is set. the adc clock rate is configured automatically, according to the aifn_sr, aifnclk_rate and adc_osr128 registers. (see ?clocking and sample rates? for further details of the system clocks and control registers.) when aif1clk is selected as the sysclk sour ce (sysclk_src = 0), then the adc clocking is controlled by the aif1_sr and aif1clk_rate registers. when aif2clk is selected as the sysclk sour ce (sysclk_src = 1), then the adc clocking is controlled by the aif2_sr and aif2clk_rate registers. the supported adc clocking configurations are described in table 14 (for adc_osr128=1) and table 15 (for adc_osr128=0). the adc_os r128 bit is set by default, giving best audio performance. sample rate (khz) sysclk rate (aifnclk / fs ratio) 128 192 256 384 512 768 1024 1536 8 ? ? ? 11.025 ? ? 12 ? ? 16 ? ? ? ? 22.05 ? ? ? 24 ? ? ? 32 ? ? 44.1 ? 48 ? 88.2 96 when adc_osr128=1, adc operation is only supported for the configurations indicated above table 14 adc clocking - adc_osr128 = 1 (default) sample rate (khz) sysclk rate (aifnclk / fs ratio) 128 192 256 384 512 768 1024 1536 8 ? ? ? ? ? ? 11.025 ? ? ? ? ? 12 ? ? ? ? ? 16 ? ? ? ? 22.05 ? ? ? 24 ? ? ? 32 ? ? 44.1 ? 48 ? 88.2 96 when adc_osr128=0, adc operation is only supported for the configurations indicated above table 15 adc clocking - adc_osr128 = 0 the clocking requirements in table 14 and table 15 are only applicable to the aif n clk that is selected as the sysclk source. note that both clocks (aif1clk and aif2clk) must satisfy the requirements noted in the ?clocking and sample rates? section. the applicable clocks (sysclk, and aif1clk or aif2clk) must be present and enabled when using the analogue to digital converters (adcs).
production data WM8994 w pd, april 2012, rev 4.4 61 digital core architecture the WM8994 digital core provides an extensive set of mixing and signal processing features. the digital core architecture is illustrated in fi gure 21, which also identifies the datasheet sections applicable to each portion of the digital core. audio interface 1 (aif1) supports audio input and output on two stereo timeslots simultaneously, making a total of four inputs and four outputs. the mixing of the four aif1 output paths is described in ?audio interface 1 (aif1) output mixing?. a digital mixing path from the adcs or digital microphones to the dac output paths provides a high quality sidetone for voice calls or other applications. the sidetone configuration is described in ?digital sidetone mixing?; the associated filter and volume control is described in ?digital sidetone volume and filter control?. each of the four hi-fi dacs has a dedicated mixer for controlling the signal paths to that dac. the configuration of these signal paths is described in ?dac output digital mixing?. each dac is provided with digital volume control, soft mute / un-mute and a low pass filter. the associated controls are defined in the ?digital to analogue converter (dac)? section. digital processing can be applied to the four input channels of aif1 and the two input channels of aif2. the available features include 5-band equalization (eq), 3d stereo expansion and dynamic range control (drc). the eq provides the capability to tailor the audio path according to the frequency characteristics of an earpiece or loudspeaker, and/or according to user preferences. the eq controls are described in ?retune tm mobile parametric equalizer (eq)?. the drc provides adaptive signal level control to improve the handling of unpredictable signal levels and to improve intelligibility in the presence of transients and impulsive noises. the drc controls are described in ?dynamic range control (drc)?. 3d stereo expansion provides a stereo e nhancement effect; the depth of the effect is programmable, as described in ?3d stereo expansion?. the input channels of aif1 and aif2 are also equipped with digital volume control, soft mute / un- mute and de-emphasis filter control; see ?digital volume and filter control? for details of these features. the output channels of aif1 and aif2 can be configured using the digital volume control and a programmable high-pass filter (hpf). the dynamic range control (drc) circuit can also be applied here, with the restriction that a drc cannot be enabled in the input and output path of one aif channel at the same time. the aif output volume and filter controls are described in ?digital volume and filter control?. the WM8994 provides an ultrasonic mode on the output paths of aif1, allowing high frequency signals (such as ultrasonic microphone signals) to be output. see ?ultrasonic (4fs) aif output mode? for further details. the WM8994 provides two full audio interfaces, aif1 and aif2. each interface supports a number of protocols, including i 2 s, dsp, msb-first left/right justified, and can operate in master or slave modes. pcm operation is supported in the dsp mode. a-law and ? -law companding are also supported. time division multiplexing (tdm) is available to allow multiple devices to stream data simultaneously on the same bus, saving space and power. four-channel input and output is supported using tdm on aif1. two-channel input and output is supported on aif2. a third interface, aif3, is partially supported, using multiplexers to re-configure alternate connections to aif1 or aif2. signal mixing between audio interfaces is possible. the WM8994 performs stereo full-duplex sample rate conversion between the audio interfaces as required. (note that sample rate conversion is not supported on some signal paths, as noted in figure 21).
WM8994 production data w pd, april 2012, rev 4.4 62 figure 21 digital core architecture
production data WM8994 w pd, april 2012, rev 4.4 63 digital mixing this section describes the digital mixing functions of the WM8994. digital audio mixing is provided on four aif1 output paths, two digital sidetone paths, and four digital to analogue converters (dacs). note that the two aif2 output paths are connected to the dac2l and dac2r signal paths. the digital mixing functions and associated control registers are illustrated in figure 22. figure 22 digital mixing block diagram
WM8994 production data w pd, april 2012, rev 4.4 64 audio interface 1 (aif1) output mixing there are four aif1 digital mixers, one for each aif1 audio channel (ie. left/right channels on timeslots 0/1). the inputs to each aif1 mixer comprise signals from the adc / digital microphone inputs and from aif2. note that the left/right channels of aif1 can be inver ted or interchanged if required; see ?digital audio interface control?. the aif1 left timeslot 0 output channel is derived from the adcl / dmic1 (left) and aif2 (left) inputs. the adcl / dmic1 (left) path is enabled by adc1l_to_aif1adc1l, whilst the aif2 (left) path is enabled by aif2dacl_to_aif1adc1l. the aif1 right timeslot 0 output channel is derived from the adcr / dmic1 (right) and aif2 (right) inputs. the adcr / dmic1 (right) path is enabled by adc1r_to_aif1adc1r, whilst the aif2 (right) path is enabled by aif2dacr_to_aif1adc1r. the aif1 left timeslot 1 output channel is derived from the dmic2 (left) and aif2 (left) inputs. the dmic2 (left) path is enabled by adc2l_to_aif1adc2l, whilst the aif2 (left) path is enabled by aif2dacl_to_aif1adc2l. the aif1 right timeslot 1 output channel is derived fr om the dmic2 (right) and aif2 (right) inputs. the dmic2 (right) path is enabled by adc2r_to _aif1adc2r, whilst the aif2 (right) path is enabled by aif2dacr_to_aif1adc2r. the aif1 output mixer controls are defined in table 16. register address bit label default description r1542 (0606h) aif1 adc1 left mixer routing 1 adc1l_to_aif 1adc1l 0 enable adcl / dmic1 (left) to aif1 (timeslot 0, left) output 0 = disabled 1 = enabled 0 aif2dacl_to_ aif1adc1l 0 enable aif2 (left) to aif1 (timeslot 0, left) output 0 = disabled 1 = enabled r1543 (0607h) aif1 adc1 right mixer routing 1 adc1r_to_aif 1adc1r 0 enable adcr / dmic1 (right) to aif1 (timeslot 0, right) output 0 = disabled 1 = enabled 0 aif2dacr_to_ aif1adc1r 0 enable aif2 (right) to aif1 (timeslot 0, right) output 0 = disabled 1 = enabled r1544 (0608h) aif1 adc2 left mixer routing 1 adc2l_to_aif 1adc2l 0 enable dmic2 (left) to aif1 (timeslot 1, left) output 0 = disabled 1 = enabled 0 aif2dacl_to_ aif1adc2l 0 enable aif2 (left) to aif1 (timeslot 1, left) output 0 = disabled 1 = enabled r1545 (0609h) aif1 adc2 right mixer routing 1 adc2r_to_aif 1adc2r 0 enable dmic2 (right) to aif1 (timeslot 1, right) output 0 = disabled 1 = enabled 0 aif2dacr_to_ aif1adc2r 0 enable aif2 (right) to aif1 (timeslot 1, right) output 0 = disabled 1 = enabled table 16 aif1 output mixing
production data WM8994 w pd, april 2012, rev 4.4 65 digital sidetone mixing there are two digital sidetone signal paths, stl and str. the sidetone sources are selectable for each path. the sidetone mixer outputs are inputs to the dac signal mixers. the following sources can be selected for sidetone path stl. ? adcl or dmicdat1 (left) channel ? dmicdat2 (left) channel the following sources can be selected for sidetone path str. ? adcr or dmicdat1 (right) channel ? dmicdat2 (right) channel the sidetone signal sources are selected using str_sel and stl_sel as described in table 17. note that, when str_sel = 0 or stl_sel = 0, and the respective adc is enabled (for analogue inputs), then the adc data will be selected for applicable sidetone path. register address bit label default description r1569 (0621h) sidetone 1 str_sel 0 select source for sidetone str path 0 = adcr / dmicdat1 (right) 1 = dmicdat2 (right) 0 stl_sel 0 select source for sidetone stl path 0 = adcl / dmicdat1 (left) 1 = dmicdat2 (left) table 17 digital sidetone mixing digital sidetone volume and filter control a digital volume control is provided for the digi tal sidetone paths. the associated register controls are described in table 18. a digital high-pass filter can be enabled in the sidetone paths to remove dc offsets. this filter is enabled using the st_hpf register bit; the cut-off frequency is configured using st_hpf_cut. when the filter is enabled, it is enabled in both digital sidetone paths. note that the sidetone filter cut-off frequency scales according to the sample rate of aif1 or aif2. when aif1clk is selected as the sysclk source (sysclk_src = 0), then the st_hpf cut-off frequency is scaled according to the aif1_sr register. when aif2clk is selected as the sysclk source (sysclk_src = 1), then the st_hpf cut-off frequency is scaled according to the aif2_sr register. see ?clocking and sample rates? for fu rther details of the system clocks and control registers.
WM8994 production data w pd, april 2012, rev 4.4 66 register address bit label default description r1536 (0600h) dac1 mixer volumes 8:5 adcr_dac1_v ol [3:0] 0000 sidetone str to dac1l and dac1r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db (see table 19 for gain range) 3:0 adcl_dac1_v ol [3:0] 0000 sidetone stl to dac1l and dac1r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db (see table 19 for gain range) r1539 (0603h) dac2 mixer volumes 8:5 adcr_dac2_v ol [3:0] 0000 sidetone str to dac2l and dac2r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db (see table 19 for gain range) 3:0 adcl_dac2_v ol [3:0] 0000 sidetone stl to dac2l and dac2r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db (see table 19 for gain range) r1569 (0621h) sidetone 9:7 st_hpf_cut [2:0] 000 sidetone hpf cut-off frequency (relative to 44.1khz sample rate) 000 = 2.7khz 001 = 1.35khz 010 = 675hz 011 = 370hz 100 = 180hz 101 = 90hz 110 = 45hz 111 = reserved note - the cut-off frequencies scale with the digital mixing (sysclk) clocking rate. the quoted figures apply to 44.1khz sample rate. 6 st_hpf 0 digital sidetone hpf select 0 = disabled 1 = enabled table 18 digital sidetone volume control
production data WM8994 w pd, april 2012, rev 4.4 67 adcr_dac1_vol, adcl_dac2_vol, adcr_dac1_vol or adcl_dac2_vol sidetone gain (db) 0000 -36 0001 -33 0010 -30 0011 -27 0100 -24 0101 -21 0110 -18 0111 -15 1000 -12 1001 -9 1010 -6 1011 -3 1100 0 1101 0 1110 0 1111 0 table 19 digital sidetone volume range dac output digital mixing there are four dac digital mixers, one for each dac. the inputs to each dac mixer comprise signals from aif1, aif2 and the digital sidetone signals. note that the left/right channels of the aif1 and aif2 inputs can be inverted or interchanged if required; see ?digital audio interface control?. register address bit label default description r1537 (0601h) dac1 left mixer routing 5 adcr_to_dac 1l 0 enable sidetone str to dac1l 0 = disabled 1 = enabled 4 adcl_to_dac 1l 0 enable sidetone stl to dac1l 0 = disabled 1 = enabled 2 aif2dacl_to_ dac1l 0 enable aif2 (left) to dac1l 0 = disabled 1 = enabled 1 aif1dac2l_to _dac1l 0 enable aif1 (timeslot 1, left) to dac1l 0 = disabled 1 = enabled 0 aif1dac1l_to _dac1l 0 enable aif1 (timeslot 0, left) to dac1l 0 = disabled 1 = enabled r1538 (0602h) dac1 right mixer routing 5 adcr_to_dac 1r 0 enable sidetone str to dac1r 0 = disabled 1 = enabled 4 adcl_to_dac 1r 0 enable sidetone stl to dac1r 0 = disabled 1 = enabled 2 aif2dacr_to_ dac1r 0 enable aif2 (right) to dac1r 0 = disabled 1 = enabled
WM8994 production data w pd, april 2012, rev 4.4 68 register address bit label default description 1 aif1dac2r_to _dac1r 0 enable aif1 (timeslot 1, right) to dac1r 0 = disabled 1 = enabled 0 aif1dac1r_to _dac1r 0 enable aif1 (timeslot 0, right) to dac1r 0 = disabled 1 = enabled r1540 (0604h) dac2 left mixer routing 5 adcr_to_dac 2l 0 enable sidetone str to dac2l 0 = disabled 1 = enabled 4 adcl_to_dac 2l 0 enable sidetone stl to dac2l 0 = disabled 1 = enabled 2 aif2dacl_to_ dac2l 0 enable aif2 (left) to dac2l 0 = disabled 1 = enabled 1 aif1dac2l_to _dac2l 0 enable aif1 (timeslot 1, left) to dac2l 0 = disabled 1 = enabled 0 aif1dac1l_to _dac2l 0 enable aif1 (timeslot 0, left) to dac2l 0 = disabled 1 = enabled r1541 (0605h) dac2 right mixer routing 5 adcr_to_dac 2r 0 enable sidetone str to dac2r 0 = disabled 1 = enabled 4 adcl_to_dac 2r 0 enable sidetone stl to dac2r 0 = disabled 1 = enabled 2 aif2dacr_to_ dac2r 0 enable aif2 (right) to dac2r 0 = disabled 1 = enabled 1 aif1dac2r_to _dac2r 0 enable aif1 (timeslot 1, right) to dac2r 0 = disabled 1 = enabled 0 aif1dac1r_to _dac2r 0 enable aif1 (timeslot 0, right) to dac2r 0 = disabled 1 = enabled table 20 dac output digital mixing audio interface 2 (aif2) digital mixing there are two output channels on aif2. the audio source for these two channels is the same as the selected source for dac2l and dac2r, as described in ?dac output digital mixing?. note that the left/right channels of aif2 can be inve rted or interchanged if required; see ?digital audio interface control?.
production data WM8994 w pd, april 2012, rev 4.4 69 ultrasonic (4fs) aif output mode the WM8994 provides an ultrasonic mode on the output paths of the aif1 audio interface. the ultrasonic mode enables high frequency signals (such as ultrasonic microphone signals) to be output. ultrasonic mode is enabled on aif1 using the aif1 adc_4fs register bit. when the ultrasonic mode is selected, the aif1 output sample rate is increased by a factor of 4. for example, a 48khz sample rate will be output at 192khz in ultrasonic mode. ultrasonic mode is only supported in aif master mode and uses the adclrclk output (not the lrclk). when ultrasonic mode is enabled, aif1 must be configured in master mode, as described in ?digital audio interface control?. see ?general purpose input/output? to configure the gpio1 pin as adclrclk1. the adclrclk1 rate is controlled as described in ?digital audio interface control?. when ultrasonic mode is enabled, the audio band filtering and digital volume controls (see ?digital volume and filter control?) are bypassed on the affected output paths. the dynamic range control (drc) function is not available on the aif1 output signal paths in ultrasonic mode. note, however, that the drc is still available on the aif input paths in this case. the ultrasonic (4fs) signal paths are illustrated in figure 23. the aif1adc_4fs register bit is defined in table 21. figure 23 ultrasonic (4fs) signal paths register address bit label default description r1040 (0410h) aif1 adc1 filters 15 aif1adc_4fs 0 enable aif1adc ultrasonic mode (4fs) output, bypassing all aif1 baseband output filtering 0 = disabled 1 = enabled table 21 ultrasonic (4fs) mode control
WM8994 production data w pd, april 2012, rev 4.4 70 dynamic range control (drc) the dynamic range control (drc) is a circuit whic h can be enabled in the digital playback or digital record paths of the WM8994 audio interfaces. the func tion of the drc is to adjust the signal gain in conditions where the input amplitude is unknown or varies over a wide range, e.g. when recording from microphones built into a handheld system. the drc can apply compression and automatic level control to the signal path. it incorporates ?anti- clip? and ?quick release? features for handling transients in order to improve intelligibility in the presence of loud impulsive noises. the drc also incorporates a noise gate function, which provides additional attenuation of very low- level input signals. this means that the signal path is quiet when no signal is present, giving an improvement in background noise level under these conditions. the WM8994 provides three stereo dynamic range controllers (drcs); these are associated with aif1 timeslot 0, aif1 timeslot 1 and aif2 respectively. each drc can be enabled either in the dac playback (aif input) path or in the adc record (aif output) path, as described in the ?digital core architecture? section. the drcs are enabled in the dac or adcs audio signal paths using the register bits described in table 22. note that enabling any drc in the dac and adc paths simultaneously is an invalid selection. when the drc is enabled in any of the adc (digital record) paths, the associated high pass filter (hpf) must be enabled also; this ensures that dc offsets are removed prior to the drc processing. the output path hpf control registers are described in table 36 (for aif1 output paths) and table 43 (for aif2 output paths). these are described in the ?digital volume and filter control? section. note that, when ultrasonic (4fs) mode is selected on aif1, then the drc function is bypassed on the respective adc (output) signal paths. the drc may still be selected on the aif1 dac (input) signal paths. register address bit label default description r1088 (0440h) aif1 drc1 (1) 2 aif1dac1_drc _ena 0 enable drc in aif1dac1 playback path (aif1, timeslot 0) 0 = disabled 1 = enabled 1 aif1adc1l_dr c_ena 0 enable drc in aif1adc1 (left) record path (aif1, timeslot 0) 0 = disabled 1 = enabled 0 aif1adc1r_dr c_ena 0 enable drc in aif1adc1 (right) record path (aif1, timeslot 0) 0 = disabled 1 = enabled r1104 (0450h) aif1 drc2 (1) 2 aif1dac2_drc _ena 0 enable drc in aif1dac2 playback path (aif1, timeslot 1) 0 = disabled 1 = enabled 1 aif1adc2l_dr c_ena 0 enable drc in aif1adc2 (left) record path (aif1, timeslot 1) 0 = disabled 1 = enabled 0 aif1adc2r_dr c_ena 0 enable drc in aif1adc2 (right) record path (aif1, timeslot 1) 0 = disabled 1 = enabled r1344 (0540h) aif2 drc (1) 2 aif2dac_drc_ ena 0 enable drc in aif2dac playback path 0 = disabled 1 = enabled
production data WM8994 w pd, april 2012, rev 4.4 71 register address bit label default description 1 aif2adcl_drc _ena 0 enable drc in aif2adc (left) record path 0 = disabled 1 = enabled 0 aif2adcr_drc _ena 0 enable drc in aif2adc (right) record path 0 = disabled 1 = enabled table 22 drc enable the following description of the drc is applicable to all three drcs. the associated register control fields are described in table 24, table 25 and table 26 for the respective drcs. note that, where the following description refers to register names, the generic prefix [drc] is quoted: ? for the drc associated with aif1 timeslot 0, [drc] = aif1drc1. ? for the drc associated with aif1 timeslot 1, [drc] = aif1drc2. ? for the drc associated with aif2, [drc] = aif2drc. drc compression / expansion / limiting the drc supports two different compression regions, separated by a ?knee? at a specific input amplitude. in the region above the knee, the compression slope [drc] _hi_comp applies; in the region below the knee, the compression slope [drc] _lo_comp applies. the drc also supports a noise gate region, where low-level input signals are heavily attenuated. this function can be enabled or disabled according to the application requirements. the drc response in this region is defined by the expansion slope [drc] _ng_exp. for additional attenuation of signals in the noise gate region, an additional ?knee? can be defined (shown as ?knee2? in figure 24). when this knee is enabled, this introduces an infinitely steep drop- off in the drc response pattern between the [drc] _lo_comp and [drc] _ng_exp regions. the overall drc compression characteristic in ?steady state? (i.e. where the input amplitude is near- constant) is illustrated in figure 24. [drc] _knee_ip (y0) 0db [ d r c ] _ h i _ c o m p [ d rc] _ l o _ co m p drc input amplitude (db) drc output amplitude (db) [drc] _knee_op knee1 knee2 [drc] _knee2_ip [drc] _knee2_op figure 24 drc response characteristic
WM8994 production data w pd, april 2012, rev 4.4 72 the slope of the drc response is determined by register fields [drc] _hi_comp and [drc] _lo_comp. a slope of 1 indicates constant gain in this region. a slope less than 1 represents compression (i.e. a change in input amplitude produces only a smaller change in output amplitude). a slope of 0 indicates that the target output amplitude is the same across a range of input amplitudes; this is infinite compression. when the noise gate is enabled, the drc response in this region is determined by the [drc] _ng_exp register. a slope of 1 indicates constant gain in this region. a slope greater than 1 represents expansion (ie. a change in input ampli tude produces a larger change in output amplitude). when the drc_knee2_op knee is enabled (?knee2? in figure 24), this introduces the vertical line in the response pattern illustrated, resulting in infinitely steep attenuation at this point in the response. the drc parameters are listed in table 23. ref parameter description 1 [drc] _knee_ip input level at knee1 (db) 2 [drc] _knee_op output level at knee2 (db) 3 [drc] _hi_comp compression ratio above knee1 4 [drc] _lo_comp compression ratio below knee1 5 [drc] _knee2_ip input level at knee2 (db) 6 [drc] _ng_exp expansion ratio below knee2 7 [drc] _knee2_op output level at knee2 (db) table 23 drc response parameters the noise gate is enabled when the [drc] _ng_ena register is set. when the noise gate is not enabled, parameters 5, 6, 7 above are ignored, and the [drc] _lo_comp slope applies to all input signal levels below knee1. the drc_knee2_op knee is enabled when the [drc] _knee2_op_ena register is set. when this bit is not set, then parameter 7 above is ignored, and the knee2 position always coincides with the low end of the [drc] _lo_comp region. the ?knee1? point in figure 24 is determined by register fields [drc] _knee_ip and [drc] _knee_op. parameter y0, the output level for a 0db input, is not specified directly, but can be calculated from the other parameters, using the equation: gain limits the minimum and maximum gain applied by the drc is set by register fields [drc] _mingain, [drc] _maxgain and [drc] _ng_mingain. these limits can be used to alter the drc response from that illustrated in figure 24. if the range between maximum and minimum gain is reduced, then the extent of the dynamic range control is reduced. the minimum gain in the compression regions of the drc response is set by [drc] _mingain. the mimimum gain in the noise gate region is set by [drc] _ng_mingain. the minimum gain limit prevents excessive attenuation of the signal path. the maximum gain limit set by [drc] _maxgain prevents quiet signals (or silence) from being excessively amplified. dynamic characteristics the dynamic behaviour determines how quickly the drc responds to changing signal levels. note that the drc responds to the average (rms) signal amplitude over a period of time.
production data WM8994 w pd, april 2012, rev 4.4 73 the [drc] _atk determines how quickly the drc gain dec reases when the signal amplitude is high. the [drc] _dcy determines how quickly the drc gain increases when the signal amplitude is low. these register fields are described in table 24, table 25 and table 26. note that the register defaults are suitable for general purpose microphone use. anti-clip control the drc includes an anti-clip feature to avoid si gnal clipping when the input amplitude rises very quickly. this feature uses a feed-forward technique for early detection of a rising signal level. signal clipping is avoided by dynamically increasing the gain attack rate when required. the anti-clip feature is enabled using the [drc] _anticlip bit. note that the feed-forward processing increases the latency in the input signal path. note that the anti-clip feature operates entirely in the digital domain. it cannot be used to prevent signal clipping in the analogue domain nor in the source signal. analogue clipping can only be prevented by reducing the analogue signal gain or by adjusting the source signal. note that the anti-clip feature should not be enabled at the same time as the quick release feature (described below) on the same drc. quick release control the drc includes a quick-release feature to handle short transient peaks that are not related to the intended source signal. for example, in handheld microphone recording, transient signal peaks sometimes occur due to user handling, key presses or accidental tapping against the microphone. the quick release feature ensures that these transients do not cause the intended signal to be masked by the longer time constants of [drc] _dcy. the quick-release feature is enabled by setting the [drc] _qr bit. when this bit is enabled, the drc measures the crest factor (peak to rms ratio) of the input signal. a high crest factor is indicative of a transient peak that may not be related to the intended source signal. if the crest factor exceeds the level set by [drc] _qr_thr, then the normal decay rate ( [drc] _dcy) is ignored and a faster decay rate ( [drc] _qr_dcy) is used instead. note that the quick release feature should not be enabled at the same time as the anti-clip feature (described above) on the same drc. signal activity detect the drc incorporates a configurable signal detect function, allowing the signal level at the drc input to be monitored and to be used to trigger other events. this can be used to detect the presence of a microphone signal on an adc or digital mic channel, or can be used to detect an audio signal received over the digital audio interface. the peak signal level or the rms signal level of the drc input can be selected as the detection threshold. when the threshold condition is exceeded, an interrupt or gpio output can be generated. see ?general purpose input/output? for a full description of the applicable control fields.
WM8994 production data w pd, april 2012, rev 4.4 74 drc register controls the aif1drc1 control registers are described in table 24. the aif1drc2 control registers are described in table 25. the aif2drc control registers are described in table 26. register address bit label default description r1088 (0440h) aif1 drc1 (1) 8 aif1drc1_ng_ ena 0 aif1 drc1 noise gate enable 0 = disabled 1 = enabled 5 aif1drc1_kne e2_op_ena 0 aif1 drc1 knee2_op enable 0 = disabled 1 = enabled 4 aif1drc1_qr 1 aif1 drc1 quick-release enable 0 = disabled 1 = enabled 3 aif1drc1_anti clip 1 aif1 drc1 anti-clip enable 0 = disabled 1 = enabled r1089 (0441h) aif1 drc1 (2) 12:9 aif1drc1_atk [3:0] 0100 aif1 drc1 gain attack rate (seconds/6db) 0000 = reserved 0001 = 181us 0010 = 363us 0011 = 726us 0100 = 1.45ms 0101 = 2.9ms 0110 = 5.8ms 0111 = 11.6ms 1000 = 23.2ms 1001 = 46.4ms 1010 = 92.8ms 1011 = 185.6ms 1100-1111 = reserved 8:5 aif1drc1_dcy [3:0] 0010 aif1 drc1 gain decay rate (seconds/6db) 0000 = 186ms 0001 = 372ms 0010 = 743ms 0011 = 1.49s 0100 = 2.97s 0101 = 5.94s 0110 = 11.89s 0111 = 23.78s 1000 = 47.56s 1001-1111 = reserved 4:2 aif1drc1_min gain [2:0] 001 aif1 drc1 minimum gain to attenuate audio signals 000 = 0db 001 = -12db (default) 010 = -18db 011 = -24db 100 = -36db 101 = reserved 11x = reserved
production data WM8994 w pd, april 2012, rev 4.4 75 register address bit label default description 1:0 aif1drc1_max gain [1:0] 01 aif1 drc1 maximum gain to boost audio signals (db) 00 = 12db 01 = 18db 10 = 24db 11 = 36db r1090 (0442h) aif1 drc1 (3) 15:12 aif1drc1_ng_ mingain [3:0] 0000 aif1 drc1 minimum gain to attenuate audio signals when the noise gate is active. 0000 = -36db 0001 = -30db 0010 = -24db 0011 = -18db 0100 = -12db 0101 = -6db 0110 = 0db 0111 = 6db 1000 = 12db 1001 = 18db 1010 = 24db 1011 = 30db 1100 = 36db 1101 to 1111 = reserved 11:10 aif1drc1_ng_ exp [1:0] 00 aif1 drc1 noise gate slope 00 = 1 (no expansion) 01 = 2 10 = 4 11 = 8 9:8 aif1drc1_qr_ thr [1:0] 00 aif1 drc1 quick-release threshold (crest factor in db) 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7:6 aif1drc1_qr_ dcy [1:0] 00 aif1 drc1 quick-release decay rate (seconds/6db) 00 = 0.725ms 01 = 1.45ms 10 = 5.8ms 11 = reserved 5:3 aif1drc1_hi_c omp [2:0] 000 aif1 drc1 compressor slope (upper region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 1/16 101 = 0 110 = reserved 111 = reserved
WM8994 production data w pd, april 2012, rev 4.4 76 register address bit label default description 2:0 aif1drc1_lo_ comp [2:0] 000 aif1 drc1 compressor slope (lower region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 0 101 = reserved 11x = reserved r1091 (0443h) aif1 drc1 (4) 10:5 aif1drc1_kne e_ip [5:0] 000000 aif1 drc1 input signal level at the compressor ?knee?. 000000 = 0db 000001 = -0.75db 000010 = -1.5db ? (-0.75db steps) 111100 = -45db 111101 = reserved 11111x = reserved 4:0 aif1drc1_kne e_op [4:0] 00000 aif1 drc1 output signal at the compressor ?knee?. 00000 = 0db 00001 = -0.75db 00010 = -1.5db ? (-0.75db steps) 11110 = -22.5db 11111 = reserved r1092 (0444h) aif1 drc1 (5) 9:5 aif1drc1_kne e2_ip [4:0] 00000 aif1 drc1 input signal level at the noise gate threshold ?knee2?. 00000 = -36db 00001 = -37.5db 00010 = -39db ? (-1.5db steps) 11110 = -81db 11111 = -82.5db only applicable when aif1drc1_ng_ena = 1. 4:0 aif1drc1_kne e2_op [4:0] 00000 aif1 drc1 output signal at the noise gate threshold ?knee2?. 00000 = -30db 00001 = -31.5db 00010 = -33db ? (-1.5db steps) 11110 = -75db 11111 = -76.5db only applicable when aif1drc1_knee2_op_ena = 1. table 24 aif1 timeslot 0 drc controls
production data WM8994 w pd, april 2012, rev 4.4 77 register address bit label default description r1104 (0450h) aif1 drc2 (1) 8 aif1drc2_ng_ ena 0 aif1 drc2 noise gate enable 0 = disabled 1 = enabled 5 aif1drc2_kne e2_op_ena 0 aif1 drc2 knee2_op enable 0 = disabled 1 = enabled 4 aif1drc2_qr 1 aif1 drc2 quick-release enable 0 = disabled 1 = enabled 3 aif1drc2_anti clip 1 aif1 drc2 anti-clip enable 0 = disabled 1 = enabled r1105 (0451h) aif1 drc2 (2) 12:9 aif1drc2_atk [3:0] 0100 aif1 drc2 gain attack rate (seconds/6db) 0000 = reserved 0001 = 181us 0010 = 363us 0011 = 726us 0100 = 1.45ms 0101 = 2.9ms 0110 = 5.8ms 0111 = 11.6ms 1000 = 23.2ms 1001 = 46.4ms 1010 = 92.8ms 1011 = 185.6ms 1100-1111 = reserved 8:5 aif1drc2_dcy [3:0] 0010 aif1 drc2 gain decay rate (seconds/6db) 0000 = 186ms 0001 = 372ms 0010 = 743ms 0011 = 1.49s 0100 = 2.97s 0101 = 5.94s 0110 = 11.89s 0111 = 23.78s 1000 = 47.56s 1001-1111 = reserved 4:2 aif1drc2_min gain [2:0] 001 aif1 drc2 minimum gain to attenuate audio signals 000 = 0db 001 = -12db (default) 010 = -18db 011 = -24db 100 = -36db 101 = reserved 11x = reserved
WM8994 production data w pd, april 2012, rev 4.4 78 register address bit label default description 1:0 aif1drc2_max gain [1:0] 01 aif1 drc2 maximum gain to boost audio signals (db) 00 = 12db 01 = 18db 10 = 24db 11 = 36db r1106 (0452h) aif1 drc2 (3) 15:12 aif1drc2_ng_ mingain [3:0] 0000 aif1 drc2 minimum gain to attenuate audio signals when the noise gate is active. 0000 = -36db 0001 = -30db 0010 = -24db 0011 = -18db 0100 = -12db 0101 = -6db 0110 = 0db 0111 = 6db 1000 = 12db 1001 = 18db 1010 = 24db 1011 = 30db 1100 = 36db 1101 to 1111 = reserved 11:10 aif1drc2_ng_ exp [1:0] 00 aif1 drc2 noise gate slope 00 = 1 (no expansion) 01 = 2 10 = 4 11 = 8 9:8 aif1drc2_qr_ thr [1:0] 00 aif1 drc2 quick-release threshold (crest factor in db) 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7:6 aif1drc2_qr_ dcy [1:0] 00 aif1 drc2 quick-release decay rate (seconds/6db) 00 = 0.725ms 01 = 1.45ms 10 = 5.8ms 11 = reserved 5:3 aif1drc2_hi_c omp [2:0] 000 aif1 drc2 compressor slope (upper region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 1/16 101 = 0 110 = reserved 111 = reserved
production data WM8994 w pd, april 2012, rev 4.4 79 register address bit label default description 2:0 aif1drc2_lo_ comp [2:0] 000 aif1 drc2 compressor slope (lower region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 0 101 = reserved 11x = reserved r1107 (0453h) aif1 drc2 (4) 10:5 aif1drc2_kne e_ip [5:0] 000000 aif1 drc2 input signal level at the compressor ?knee?. 000000 = 0db 000001 = -0.75db 000010 = -1.5db ? (-0.75db steps) 111100 = -45db 111101 = reserved 11111x = reserved 4:0 aif1drc2_kne e_op [4:0] 00000 aif1 drc2 output signal at the compressor ?knee?. 00000 = 0db 00001 = -0.75db 00010 = -1.5db ? (-0.75db steps) 11110 = -22.5db 11111 = reserved r1108 (0454h) aif1 drc2 (5) 9:5 aif1drc2_kne e2_ip [4:0] 00000 aif1 drc2 input signal level at the noise gate threshold ?knee2?. 00000 = -36db 00001 = -37.5db 00010 = -39db ? (-1.5db steps) 11110 = -81db 11111 = -82.5db only applicable when aif1drc2_ng_ena = 1. 4:0 aif1drc2_kne e2_op [4:0] 00000 aif1 drc2 output signal at the noise gate threshold ?knee2?. 00000 = -30db 00001 = -31.5db 00010 = -33db ? (-1.5db steps) 11110 = -75db 11111 = -76.5db only applicable when aif1drc2_knee2_op_ena = 1. table 25 aif1 timeslot 1 drc controls
WM8994 production data w pd, april 2012, rev 4.4 80 register address bit label default description r1344 (0540h) aif2 drc (1) 8 aif2drc_ng_e na 0 aif2 drc noise gate enable 0 = disabled 1 = enabled 5 aif2drc_knee 2_op_ena 0 aif2 drc knee2_op enable 0 = disabled 1 = enabled 4 aif2drc_qr 1 aif2 drc quick-release enable 0 = disabled 1 = enabled 3 aif2drc_anti clip 1 aif2 drc anti-clip enable 0 = disabled 1 = enabled r1345 (0541h) aif2 drc (2) 12:9 aif2drc_atk [3:0] 0100 aif2 drc gain attack rate (seconds/6db) 0000 = reserved 0001 = 181us 0010 = 363us 0011 = 726us 0100 = 1.45ms 0101 = 2.9ms 0110 = 5.8ms 0111 = 11.6ms 1000 = 23.2ms 1001 = 46.4ms 1010 = 92.8ms 1011 = 185.6ms 1100-1111 = reserved 8:5 aif2drc_dcy [3:0] 0010 aif2 drc gain decay rate (seconds/6db) 0000 = 186ms 0001 = 372ms 0010 = 743ms 0011 = 1.49s 0100 = 2.97s 0101 = 5.94s 0110 = 11.89s 0111 = 23.78s 1000 = 47.56s 1001-1111 = reserved 4:2 aif2drc_ming ain [2:0] 001 aif2 drc minimum gain to attenuate audio signals 000 = 0db 001 = -12db (default) 010 = -18db 011 = -24db 100 = -36db 101 = reserved 11x = reserved
production data WM8994 w pd, april 2012, rev 4.4 81 register address bit label default description 1:0 aif2drc_max gain [1:0] 01 aif2 drc maximum gain to boost audio signals (db) 00 = 12db 01 = 18db 10 = 24db 11 = 36db r1346 (0542h) aif2 drc (3) 15:12 aif2drc_ng_ mingain [3:0] 0000 aif2 drc minimum gain to attenuate audio signals when the noise gate is active. 0000 = -36db 0001 = -30db 0010 = -24db 0011 = -18db 0100 = -12db 0101 = -6db 0110 = 0db 0111 = 6db 1000 = 12db 1001 = 18db 1010 = 24db 1011 = 30db 1100 = 36db 1101 to 1111 = reserved 11:10 aif2drc_ng_e xp [1:0] 00 aif2 drc noise gate slope 00 = 1 (no expansion) 01 = 2 10 = 4 11 = 8 9:8 aif2drc_qr_t hr [1:0] 00 aif2 drc quick-release threshold (crest factor in db) 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7:6 aif2drc_qr_d cy [1:0] 00 aif2 drc quick-release decay rate (seconds/6db) 00 = 0.725ms 01 = 1.45ms 10 = 5.8ms 11 = reserved 5:3 aif2drc_hi_c omp [2:0] 000 aif2 drc compressor slope (upper region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 1/16 101 = 0 110 = reserved 111 = reserved
WM8994 production data w pd, april 2012, rev 4.4 82 register address bit label default description 2:0 aif2drc_lo_c omp [2:0] 000 aif2 drc compressor slope (lower region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 0 101 = reserved 11x = reserved r1347 (0543h) aif2 drc (4) 10:5 aif2drc_knee _ip [5:0] 000000 aif2 drc input signal level at the compressor ?knee?. 000000 = 0db 000001 = -0.75db 000010 = -1.5db ? (-0.75db steps) 111100 = -45db 111101 = reserved 11111x = reserved 4:0 aif2drc_knee _op [4:0] 00000 aif2 drc output signal at the compressor ?knee?. 00000 = 0db 00001 = -0.75db 00010 = -1.5db ? (-0.75db steps) 11110 = -22.5db 11111 = reserved r1348 (0544h) aif2 drc (5) 9:5 aif2drc_knee 2_ip [4:0] 00000 aif2 drc input signal level at the noise gate threshold ?knee2?. 00000 = -36db 00001 = -37.5db 00010 = -39db ? (-1.5db steps) 11110 = -81db 11111 = -82.5db only applicable when aif2drc_ng_ena = 1. 4:0 aif2drc_knee 2_op [4:0] 00000 aif2 drc output signal at the noise gate threshold ?knee2?. 00000 = -30db 00001 = -31.5db 00010 = -33db ? (-1.5db steps) 11110 = -75db 11111 = -76.5db only applicable when aif2drc_knee2_op_ena = 1. table 26 aif2 drc controls
production data WM8994 w pd, april 2012, rev 4.4 83 retune tm mobile parametric equalizer (eq) the retune tm mobile parametric eq is a circuit which can be enabled in the digital playback path of the WM8994 audio interfaces. the function of the eq is to adjust the frequency characteristic of the output in order to compensate for unwanted frequency characteristics in the loudspeaker (or other output transducer). it can also be used to tailor the response according to user preferences, for example to accentuate or attenuate specific frequency bands to emulate different sound profiles or environments e.g. concert hall, rock etc. the WM8994 provides three stereo eq circuits; these are associated with aif1 timeslot 0, aif1 timeslot 1 and aif2 respectively. the eq is enabled in these three signal paths using the register bits described in table 27. register address bit label default description r1152 (0480h) aif1 dac1 eq gains (1) 0 aif1dac1_eq_e na 0 enable eq in aif1dac1 playback path (aif1, timeslot 0) 0 = disabled 1 = enabled r1184 (04a0h) aif1 dac2 eq gains (1) 0 aif1dac2_eq_e na 0 enable eq in aif1dac2 playback path (aif1, timeslot 1) 0 = disabled 1 = enabled r1408 (0580h) aif2 eq gains (1) 0 aif2dac_eq_en a 0 enable eq in aif2dac playback path 0 = disabled 1 = enabled table 27 retune tm mobile parametric eq enable the following description of the eq is applicable to all three eq circuits. the associated register control fields are described in table 29, table 30 and table 31 for the respective eqs. the eq can be configured to operate in two modes - ?default? mode or ?retune tm mobile? mode. default mode (5-band parametric eq) in default mode, the cut-off / centre frequencies are fixed as per table 28. the filter bandwidths are also fixed in default mode. the gain of the individual bands (-12db to +12db) can be controlled as described in table 29. the cut-off / centre frequencies noted in table 28 are applicable to a sample rate of 48khz. when using other sample rates, these frequencies will be scaled in proportion to the selected sample rate for the associated audio interface (aif1 or aif2). if aif1 and aif2 are operating at different sample rates, then the cut-off / centre frequencies will be different for the two interfaces. note that the frequencies can be set to other values by using the features described in ?retune tm mobile mode?. eq band cut-off/centre frequency 1 100 hz 2 300 hz 3 875 hz 4 2400 hz 5 6900 hz table 28 eq band cut-off / centre frequencies
WM8994 production data w pd, april 2012, rev 4.4 84 register address bit label default description r1152 (0480h) aif1 dac1 eq gains (1) 15:11 aif1dac1_eq _b1_gain [4:0] 01100 (0db) aif1dac1 (aif1, timeslot 0) eq band 1 gain -12db to +12db in 1db steps (see table 32 for gain range) 10:6 aif1dac1_eq _b2_gain [4:0] 01100 (0db) aif1dac1 (aif1, timeslot 0) eq band 2 gain -12db to +12db in 1db steps (see table 32 for gain range) 5:1 aif1dac1_eq _b3_gain [4:0] 01100 (0db) aif1dac1 (aif1, timeslot 0) eq band 3 gain -12db to +12db in 1db steps (see table 32 for gain range) r1153 (0481h) aif1 dac1 eq gains (2) 15:11 aif1dac1_eq _b4_gain [4:0] 01100 (0db) aif1dac1 (aif1, timeslot 0) eq band 4 gain -12db to +12db in 1db steps (see table 32 for gain range) 10:6 aif1dac1_eq _b5_gain [4:0] 01100 (0db) aif1dac1 (aif1, timeslot 0) eq band 5 gain -12db to +12db in 1db steps (see table 32 for gain range) table 29 aif1 timeslot 0 eq band gain control register address bit label default description r1184 (04a0h) aif1 dac2 eq gains (1) 15:11 aif1dac2_eq _b1_gain [4:0] 01100 (0db) aif1dac2 (aif1, timeslot 1) eq band 1 gain -12db to +12db in 1db steps (see table 32 for gain range) 10:6 aif1dac2_eq _b2_gain [4:0] 01100 (0db) aif1dac2 (aif1, timeslot 1) eq band 2 gain -12db to +12db in 1db steps (see table 32 for gain range) 5:1 aif1dac2_eq _b3_gain [4:0] 01100 (0db) aif1dac2 (aif1, timeslot 1) eq band 3 gain -12db to +12db in 1db steps (see table 32 for gain range) r1185 (04a1h) aif1 dac2 eq gains (2) 15:11 aif1dac2_eq _b4_gain [4:0] 01100 (0db) aif1dac2 (aif1, timeslot 1) eq band 4 gain -12db to +12db in 1db steps (see table 32 for gain range) 10:6 aif1dac2_eq _b5_gain [4:0] 01100 (0db) aif1dac2 (aif1, timeslot 1) eq band 5 gain -12db to +12db in 1db steps (see table 32 for gain range) table 30 aif1 timeslot 1 eq band gain control
production data WM8994 w pd, april 2012, rev 4.4 85 register address bit label default description r1408 (0580h) aif2 eq gains (1) 15:11 aif2dac_eq_ b1_gain [4:0] 01100 (0db) aif2 eq band 1 gain -12db to +12db in 1db steps (see table 32 for gain range) 10:6 aif2dac_eq_ b2_gain [4:0] 01100 (0db) aif2eq band 2 gain -12db to +12db in 1db steps (see table 32 for gain range) 5:1 aif2dac_eq_ b3_gain [4:0] 01100 (0db) aif2eq band 3 gain -12db to +12db in 1db steps (see table 32 for gain range) r1409 (0581h) aif2 eq gains (2) 15:11 aif2dac_eq_ b4_gain [4:0] 01100 (0db) aif2eq band 4 gain -12db to +12db in 1db steps (see table 32 for gain range) 10:6 aif2dac_eq_ b5_gain [4:0] 01100 (0db) aif2eq band 5 gain -12db to +12db in 1db steps (see table 32 for gain range) table 31 aif2 eq band gain control eq gain setting gain (db) 00000 -12 00001 -11 00010 -10 00011 -9 00100 -8 00101 -7 00110 -6 00111 -5 01000 -4 01001 -3 01010 -2 01011 -1 01100 0 01101 +1 01110 +2 01111 +3 10000 +4 10001 +5 10010 +6 10011 +7 10100 +8 10101 +9 10110 +10 10111 +11 11000 +12 11001 to 11111 reserved table 32 eq gain control range
WM8994 production data w pd, april 2012, rev 4.4 86 retune tm mobile mode retune tm mobile mode provides a comprehensive facility for the user to define the cut-off/centre frequencies and filter bandwidth for each eq band, in addition to the gain controls already described. this enables the eq to be accurately customised for a specific transducer characteristic or desired sound profile. the eq enable and eq gain controls are the same as defined for the default mode. the additional coefficients used in retune tm mobile mode are held in registers r1154 to r1171 for aif1dac1, registers r1186 to r1203 for aif1dac2 and registers r1410 to r1427 for aif2. these coefficients are derived using tools provided in wolfson? s wisce? evaluation board control software. please contact your local wolfson representative for more details. note that the WM8994 audio interfaces may operate at different sample rates concurrently. the eq settings for each interface must be programmed relative to the applicable sample rate of the corresponding audio interface. if the audio interface sample rate is changed, then different eq register settings will be required to achieve a given eq response.
production data WM8994 w pd, april 2012, rev 4.4 87 eq filter characteristics the filter characteristics for each frequency band are shown in figure 25 to figure 29. these figures show the frequency response for all available gain settings, using default cut-off/centre frequencies and bandwidth. -15 -10 -5 0 5 10 15 1 10 100 1000 10000 100000 frequency (hz) gain (db) -15 -10 -5 0 5 10 15 1 10 100 1000 10000 100000 frequency (hz) gain (db) figure 25 eq band 1 ? low freq shelf filter response figure 26 eq band 2 ? peak filter response -15 -10 -5 0 5 10 15 1 10 100 1000 10000 100000 frequency (hz) gain (db) -15 -10 -5 0 5 10 15 1 10 100 1000 10000 100000 frequency (hz) gain (db) figure 27 eq band 3 ? peak filter response figure 28 eq band 4 ? peak filter response -15 -10 -5 0 5 10 15 1 10 100 1000 10000 100000 frequency (hz) gain (db) figure 29 eq band 5 ? high freq shelf filter response
WM8994 production data w pd, april 2012, rev 4.4 88 3d stereo expansion the 3d stereo expansion is an audio enhancement feature which can be enabled in the digital playback path of the WM8994 audio interfaces. this feature uses configurable cross-talk mechanisms to adjust the depth or width of the stereo audio. the WM8994 provides three 3d stereo expansion circuits; these are associated with aif1 timeslot 0, aif1 timeslot 1 and aif2 respectively. the 3d stereo expansion is enabled and controlled in these signal paths using the register bits described in table 33. register address bit label default description r1057 (0421h) aif1 dac1 filters (2) 13:9 aif1dac1_3d_g ain 00000 aif1dac1 playback path (aif1, timeslot 0) 3d stereo depth 00000 = off 00001 = minimum (-16db) ?(0.915db steps) 11111 = maximum (+11.45db) 8 aif1dac1_3d_e na 0 enable 3d stereo in aif1dac1 playback path (aif1, timeslot 0) 0 = disabled 1 = enabled r1059 (0423h) aif1 dac2 filters (2) 13:9 aif1dac2_3d_g ain 00000 aif1dac2 playback path (aif1, timeslot 1) 3d stereo depth 00000 = off 00001 = minimum (-16db) ?(0.915db steps) 11111 = maximum (+11.45db) 8 aif1dac2_3d_e na 0 enable 3d stereo in aif1dac2 playback path (aif1, timeslot 1) 0 = disabled 1 = enabled r1313 (0521h) aif2 dac filters (2) 13:9 aif2dac_3d_ga in 00000 aif2dac playback path 3d stereo depth 00000 = off 00001 = minimum (-16db) ?(0.915db steps) 11111 = maximum (+11.45db) 8 aif2dac_3d_en a 0 enable 3d stereo in aif2dac playback path 0 = disabled 1 = enabled table 33 3d stereo expansion control
production data WM8994 w pd, april 2012, rev 4.4 89 digital volume and filter control this section describes the digital volume and filter controls of the WM8994 aif paths. digital volume control and high pass filter (hpf ) control is provided on four aif1 output (digital record) paths and two aif2 output (digital record) paths. note that, when ultrasonic (4fs) mode is selected on aif1, then the digital volume control and high pass filter (hpf) control are bypassed on the respective adc (output) signal paths. digital volume control, soft-mute control, mono mix and de-emphasis filter control is provided on four aif1 input (digital playback) paths and two aif2 input (digital playback) paths. aif1 - output path volume control the aif1 interface supports up to four output channels. a digital volume control is provided on each of these output signal paths, allowing attenuation in the range -71.625db to +17.625db in 0.375db steps. the level of attenuation for an eight-bit code x is given by: 0.375 ? (x-192) db for 1 ? x ? 239; mute for x = 0 +17.625db for 239 ? x ? 255 the aif1adc1_vu and aif1adc2_vu bits control the loading of digital volume control data. when the volume update bit is set to 0, the associated volume control data will be loaded into the respective control register, but will not actually change the digital gain setting. the aif1adc1l and aif1adc1r gain settings are updated when a 1 is written to aif1adc1_vu. the aif1adc2l and aif1adc2r gain settings are updated when a 1 is written to aif1adc2_vu. this makes it possible to update the gain of left and right channels simultaneously. register address bit label default description r1024 (0400h) aif1 adc1 left volume 8 aif1adc1_ vu n/a aif1adc1 output path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1adc1l and aif1adc1r volume to be updated simultaneously 7:0 aif1adc1l _vol [7:0] c0h (0db) aif1adc1 (left) output path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db (see table 35 for volume range) r1025 (0401h) aif1 adc1 right volume 8 aif1adc1_ vu n/a aif1adc1 output path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1adc1l and aif1adc1r volume to be updated simultaneously 7:0 aif1adc1r _vol [7:0] c0h (0db) aif1adc1 (right) output path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db (see table 35 for volume range) r1028 (0404h) aif1 adc2 left volume 8 aif1adc2_ vu n/a aif1adc2 output path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1adc2l and aif1adc2r volume to be updated simultaneously
WM8994 production data w pd, april 2012, rev 4.4 90 register address bit label default description 7:0 aif1adc2l _vol [7:0] c0h (0db) aif1adc2 (left) output path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db (see table 35 for volume range) r1029 (0405h) aif1 adc2 right volume 8 aif1adc2_ vu n/a aif1adc2 output path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1adc2l and aif1adc2r volume to be updated simultaneously 7:0 aif1adc2r _vol [7:0] c0h (0db) aif1adc2 (right) output path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db (see table 35 for volume range) table 34 aif1 output path volume control
production data WM8994 w pd, april 2012, rev 4.4 91 aif1/aif2 output volume volume (db) aif1/aif2 output volume volume (db) aif1/aif2 output volume volume (db) aif1/aif2 output volume volume (db) 0h mute 40h -48.000 80h -24.000 c0h 0.000 1h -71.625 41h -47.625 81h -23.625 c1h 0.375 2h -71.250 42h -47.250 82h -23.250 c2h 0.750 3h -70.875 43h -46.875 83h -22.875 c3h 1.125 4h -70.500 44h -46.500 84h -22.500 c4h 1.500 5h -70.125 45h -46.125 85h -22.125 c5h 1.875 6h -69.750 46h -45.750 86h -21.750 c6h 2.250 7h -69.375 47h -45.375 87h -21.375 c7h 2.625 8h -69.000 48h -45.000 88h -21.000 c8h 3.000 9h -68.625 49h -44.625 89h -20.625 c9h 3.375 ah -68.250 4ah -44.250 8ah -20.250 cah 3.750 bh -67.875 4bh -43.875 8bh -19.875 cbh 4.125 ch -67.500 4ch -43.500 8ch -19.500 cch 4.500 dh -67.125 4dh -43.125 8dh -19.125 cdh 4.875 eh -66.750 4eh -42.750 8eh -18.750 ceh 5.250 fh -66.375 4fh -42.375 8fh -18.375 cfh 5.625 10h -66.000 50h -42.000 90h -18.000 d0h 6.000 11h -65.625 51h -41.625 91h -17.625 d1h 6.375 12h -65.250 52h -41.250 92h -17.250 d2h 6.750 13h -64.875 53h -40.875 93h -16.875 d3h 7.125 14h -64.500 54h -40.500 94h -16.500 d4h 7.500 15h -64.125 55h -40.125 95h -16.125 d5h 7.875 16h -63.750 56h -39.750 96h -15.750 d6h 8.250 17h -63.375 57h -39.375 97h -15.375 d7h 8.625 18h -63.000 58h -39.000 98h -15.000 d8h 9.000 19h -62.625 59h -38.625 99h -14.625 d9h 9.375 1ah -62.250 5ah -38.250 9ah -14.250 dah 9.750 1bh -61.875 5bh -37.875 9bh -13.875 dbh 10.125 1ch -61.500 5ch -37.500 9ch -13.500 dch 10.500 1dh -61.125 5dh -37.125 9dh -13.125 ddh 10.875 1eh -60.750 5eh -36.750 9eh -12.750 deh 11.250 1fh -60.375 5fh -36.375 9fh -12.375 dfh 11.625 20h -60.000 60h -36.000 a0h -12.000 e0h 12.000 21h -59.625 61h -35.625 a1h -11.625 e1h 12.375 22h -59.250 62h -35.250 a2h -11.250 e2h 12.750 23h -58.875 63h -34.875 a3h -10.875 e3h 13.125 24h -58.500 64h -34.500 a4h -10.500 e4h 13.500 25h -58.125 65h -34.125 a5h -10.125 e5h 13.875 26h -57.750 66h -33.750 a6h -9.750 e6h 14.250 27h -57.375 67h -33.375 a7h -9.375 e7h 14.625 28h -57.000 68h -33.000 a8h -9.000 e8h 15.000 29h -56.625 69h -32.625 a9h -8.625 e9h 15.375 2ah -56.250 6ah -32.250 aah -8.250 eah 15.750 2bh -55.875 6bh -31.875 abh -7.875 ebh 16.125 2ch -55.500 6ch -31.500 ach -7.500 ech 16.500 2dh -55.125 6dh -31.125 adh -7.125 edh 16.875 2eh -54.750 6eh -30.750 aeh -6.750 eeh 17.250 2fh -54.375 6fh -30.375 afh -6.375 efh 17.625 30h -54.000 70h -30.000 b0h -6.000 f0h 17.625 31h -53.625 71h -29.625 b1h -5.625 f1h 17.625 32h -53.250 72h -29.250 b2h -5.250 f2h 17.625 33h -52.875 73h -28.875 b3h -4.875 f3h 17.625 34h -52.500 74h -28.500 b4h -4.500 f4h 17.625 35h -52.125 75h -28.125 b5h -4.125 f5h 17.625 36h -51.750 76h -27.750 b6h -3.750 f6h 17.625 37h -51.375 77h -27.375 b7h -3.375 f7h 17.625 38h -51.000 78h -27.000 b8h -3.000 f8h 17.625 39h -50.625 79h -26.625 b9h -2.625 f9h 17.625 3ah -50.250 7ah -26.250 bah -2.250 fah 17.625 3bh -49.875 7bh -25.875 bbh -1.875 fbh 17.625 3ch -49.500 7ch -25.500 bch -1.500 fch 17.625 3dh -49.125 7dh -25.125 bdh -1.125 fdh 17.625 3eh -48.750 7eh -24.750 beh -0.750 feh 17.625 3fh -48.375 7fh -24.375 bfh -0.375 ffh 17.625 table 35 aif1 output path digital volume range
WM8994 production data w pd, april 2012, rev 4.4 92 aif1 - output path high pass filter a digital high-pass filter can be enabled in the aif1 output paths to remove dc offsets. this filter is enabled independently in the four aif1 output channels using the register bits described in table 36. the hpf cut-off frequency for the aif1 timeslot 0 channels is set using aif1adc1_hpf_cut. the hpf cut-off frequency for the aif1 timeslot 1 channels is set using aif1adc2_hpf_cut. in hi-fi mode, the high pass filter is optimised for removing dc offsets without degrading the bass response and has a cut-off frequency of 3.7hz when the sample rate (fs) = 44.1khz. in voice modes, the high pass filter is optimised for voice communication; it is recommended to set the cut-off frequency below 300hz. note that the cut-off frequencies scale with the aif1 sample rate. (the aif1 sample rate is set using the aif1_sr register, as described in the ?clocking and sample rates? section.) see table 37 for the hpf cut-off frequencies at all supported sample rates. register address bit label default description r1040 (0410h) aif1 adc1 filters 14:13 aif1adc1_ hpf_cut [1:0] 00 aif1adc1 output path (aif1, timeslot 0) digital hpf cut-off frequency (fc) 00 = hi-fi mode (fc = 4hz at fs = 48khz) 01 = voice mode 1 (fc = 64hz at fs = 8khz) 10 = voice mode 2 (fc = 130hz at fs = 8khz) 11 = voice mode 3 (fc = 267hz at fs = 8khz) 12 aif1adc1l_ hpf 0 aif1adc1 (left) output path (aif1, timeslot 0) digital hpf enable 0 = disabled 1 = enabled 11 aif1adc1r _hpf 0 aif1adc1 (right) output path (aif1, timeslot 0) digital hpf enable 0 = disabled 1 = enabled r1041 (0411h) aif1 adc2 filters 14:13 aif1adc2_ hpf_cut [1:0] 00 aif1adc2 output path (aif1, timeslot 1) digital hpf cut-off frequency (fc) 00 = hi-fi mode (fc = 4hz at fs = 48khz) 01 = voice mode 1 (fc = 64hz at fs = 8khz) 10 = voice mode 2 (fc = 130hz at fs = 8khz) 11 = voice mode 3 (fc = 267hz at fs = 8khz) 12 aif1adc2l_ hpf 0 aif1adc2 (left) output path (aif1, timeslot 1) digital hpf enable 0 = disabled 1 = enabled 11 aif1adc2r _hpf 0 aif1adc2 (right) output path (aif1, timeslot 1) digital hpf enable 0 = disabled 1 = enabled table 36 aif1 output path high pass filter
production data WM8994 w pd, april 2012, rev 4.4 93 sample frequency (khz) cut-off frequency (hz) for given value of aif n adc n _hpf_cut 00 01 10 11 8.000 0.7 64 130 267 11.025 0.9 88 178 367 16.000 1.3 127 258 532 22.050 1.9 175 354 733 24.000 2.0 190 386 798 32.000 2.7 253 514 1063 44.100 3.7 348 707 1464 48.000 4.0 379 770 1594 88.200 7.4 696 1414 2928 96.000 8.0 758 1540 3188 table 37 aif1 output path high pass filter cut-off frequencies aif1 - input path volume control the aif1 interface supports up to four input channels. a digital volume control is provided on each of these input signal paths, allowing attenuation in the range -71.625db to 0db in 0.375db steps. the level of attenuation for an eight-bit code x is given by: 0.375 ? (x-192) db for 1 ? x ? 192; mute for x = 0 0db for 192 ? x ? 255 the aif1dac1_vu and aif1dac2_vu bits control the loading of digital volume control data. when the volume update bit is set to 0, the associated volume control data will be loaded into the respective control register, but will not actually change the digital gain setting. the aif1dac1l and aif1dac1r gain settings are updated when a 1 is written to aif1dac1_vu. the aif1dac2l and aif1dac2r gain settings are updated when a 1 is written to aif1dac2_vu. this makes it possible to update the gain of left and right channels simultaneously. note that a digital gain function is also avail able at the audio interface input, to boost the dac volume when a small signal is received on dacdat1. see ?digital audio interface control? for further details. digital volume control is also possible at the dac stage of the signal path, after the audio signal has passed through the dac digital mixers. see ?digital to analogue converter (dac)? for further details.
WM8994 production data w pd, april 2012, rev 4.4 94 register address bit label default description r1026 (0402h) aif1 dac1 left volume 8 aif1dac1_ vu n/a aif1dac1 input path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1dac1l and aif1dac1r volume to be updated simultaneously 7:0 aif1dac1l _vol [7:0] c0h (0db) aif1dac1 (left) input path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 39 for volume range) r1027 (0403h) aif1 dac1 right volume 8 aif1dac1_ vu n/a aif1dac1 input path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1dac1l and aif1dac1r volume to be updated simultaneously 7:0 aif1dac1r _vol [7:0] c0h (0db) aif1dac1 (right) input path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 39 for volume range) r1030 (0406h) aif1 dac2 left volume 8 aif1dac2_ vu n/a aif1dac2 input path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1dac2l and aif1dac2r volume to be updated simultaneously 7:0 aif1dac2l _vol [7:0] c0h (0db) aif1dac2 (left) input path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 39 for volume range) r1031 (0407h) aif1 dac2 right volume 8 aif1dac2_ vu n/a aif1dac2 input path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1dac2l and aif1dac2r volume to be updated simultaneously 7:0 aif1dac2r _vol [7:0] c0h (0db) aif1dac2 (right) input path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 39 for volume range) table 38 aif1 input path volume control
production data WM8994 w pd, april 2012, rev 4.4 95 aif1/aif2 input volume v olume (db) aif1/aif2 input volume v olume (db) a if1/aif2 input volume v olume (db) a if1/aif2 input volume v olume (db) 0h mute 40h -48.000 80h -24.000 c0h 0.000 1h -71.625 41h -47.625 81h -23.625 c1h 0.000 2h -71.250 42h -47.250 82h -23.250 c2h 0.000 3h -70.875 43h -46.875 83h -22.875 c3h 0.000 4h -70.500 44h -46.500 84h -22.500 c4h 0.000 5h -70.125 45h -46.125 85h -22.125 c5h 0.000 6h -69.750 46h -45.750 86h -21.750 c6h 0.000 7h -69.375 47h -45.375 87h -21.375 c7h 0.000 8h -69.000 48h -45.000 88h -21.000 c8h 0.000 9h -68.625 49h -44.625 89h -20.625 c9h 0.000 ah -68.250 4ah -44.250 8ah -20.250 cah 0.000 bh -67.875 4bh -43.875 8bh -19.875 cbh 0.000 ch -67.500 4ch -43.500 8ch -19.500 cch 0.000 dh -67.125 4dh -43.125 8dh -19.125 cdh 0.000 eh -66.750 4eh -42.750 8eh -18.750 ceh 0.000 fh -66.375 4fh -42.375 8fh -18.375 cfh 0.000 10h -66.000 50h -42.000 90h -18.000 d0h 0.000 11h -65.625 51h -41.625 91h -17.625 d1h 0.000 12h -65.250 52h -41.250 92h -17.250 d2h 0.000 13h -64.875 53h -40.875 93h -16.875 d3h 0.000 14h -64.500 54h -40.500 94h -16.500 d4h 0.000 15h -64.125 55h -40.125 95h -16.125 d5h 0.000 16h -63.750 56h -39.750 96h -15.750 d6h 0.000 17h -63.375 57h -39.375 97h -15.375 d7h 0.000 18h -63.000 58h -39.000 98h -15.000 d8h 0.000 19h -62.625 59h -38.625 99h -14.625 d9h 0.000 1ah -62.250 5ah -38.250 9ah -14.250 dah 0.000 1bh -61.875 5bh -37.875 9bh -13.875 dbh 0.000 1ch -61.500 5ch -37.500 9ch -13.500 dch 0.000 1dh -61.125 5dh -37.125 9dh -13.125 ddh 0.000 1eh -60.750 5eh -36.750 9eh -12.750 deh 0.000 1fh -60.375 5fh -36.375 9fh -12.375 dfh 0.000 20h -60.000 60h -36.000 a0h -12.000 e0h 0.000 21h -59.625 61h -35.625 a1h -11.625 e1h 0.000 22h -59.250 62h -35.250 a2h -11.250 e2h 0.000 23h -58.875 63h -34.875 a3h -10.875 e3h 0.000 24h -58.500 64h -34.500 a4h -10.500 e4h 0.000 25h -58.125 65h -34.125 a5h -10.125 e5h 0.000 26h -57.750 66h -33.750 a6h -9.750 e6h 0.000 27h -57.375 67h -33.375 a7h -9.375 e7h 0.000 28h -57.000 68h -33.000 a8h -9.000 e8h 0.000 29h -56.625 69h -32.625 a9h -8.625 e9h 0.000 2ah -56.250 6ah -32.250 aah -8.250 eah 0.000 2bh -55.875 6bh -31.875 abh -7.875 ebh 0.000 2ch -55.500 6ch -31.500 ach -7.500 ech 0.000 2dh -55.125 6dh -31.125 adh -7.125 edh 0.000 2eh -54.750 6eh -30.750 aeh -6.750 eeh 0.000 2fh -54.375 6fh -30.375 afh -6.375 efh 0.000 30h -54.000 70h -30.000 b0h -6.000 f0h 0.000 31h -53.625 71h -29.625 b1h -5.625 f1h 0.000 32h -53.250 72h -29.250 b2h -5.250 f2h 0.000 33h -52.875 73h -28.875 b3h -4.875 f3h 0.000 34h -52.500 74h -28.500 b4h -4.500 f4h 0.000 35h -52.125 75h -28.125 b5h -4.125 f5h 0.000 36h -51.750 76h -27.750 b6h -3.750 f6h 0.000 37h -51.375 77h -27.375 b7h -3.375 f7h 0.000 38h -51.000 78h -27.000 b8h -3.000 f8h 0.000 39h -50.625 79h -26.625 b9h -2.625 f9h 0.000 3ah -50.250 7ah -26.250 bah -2.250 fah 0.000 3bh -49.875 7bh -25.875 bbh -1.875 fbh 0.000 3ch -49.500 7ch -25.500 bch -1.500 fch 0.000 3dh -49.125 7dh -25.125 bdh -1.125 fdh 0.000 3eh -48.750 7eh -24.750 beh -0.750 feh 0.000 3fh -48.375 7fh -24.375 bfh -0.375 ffh 0.000 table 39 aif1 input path digital volume range
WM8994 production data w pd, april 2012, rev 4.4 96 aif1 - input path soft mute control the WM8994 provides a soft mute function for each of the aif1 interface input paths. when the soft- mute function is selected, the WM8994 gradually attenuates the associated signal paths until the path is entirely muted. when the soft-mute function is de-selected, the gain will either return instantly to the digital gain setting, or will gradually ramp back to the digital gain setting, depending on the applicable _unmute_ramp register field. the mute and un-mute ramp rate is selectable between two different rates. the aif1 input paths are soft-muted by default. to play back an audio signal, the soft-mute must first be de-selected by setting the applicable mute bit to 0. the soft un-mute would typically be used during playback of audio data so that when the mute is subsequently disabled, a smooth transition is scheduled to the previous volume level and pop noise is avoided. this is desirable when resuming playback after pausing during a track. the soft un-mute would typically not be required when un-muting at the start of a music file, in order that the first part of the music track is not attenuated. the instant un-mute behaviour is desirable in this case, when starting playback of a new track. see ?dac soft mute and soft un-mute? (figure 30) for an illustration of the soft mute function. register address bit label default description r1056 (0420h) aif1 dac1 filters (1) 9 aif1dac1_ mute 1 aif1dac1 input path (aif1, timeslot 0) soft mute control 0 = un-mute 1 = mute 5 aif1dac1_ muterat e 0 aif1dac1 input path (aif1, timeslot 0) soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.) 4 aif1dac1_ unmute_ ramp 0 aif1dac1 input path (aif1, timeslot 0) unmute ramp select 0 = disabling soft-mute (aif1dac1_mute=0) will cause the volume to change immediately to aif1dac1l_vol and aif1dac1r_vol settings 1 = disabling soft-mute (aif1dac1_mute=0) will cause the dac volume to ramp up gradually to the aif1dac1l_vol and aif1dac1r_vol settings r1058 (0422h) aif1 dac2 filters (1) 9 aif1dac2_ mute 1 aif1dac2 input path (aif1, timeslot 1) soft mute control 0 = un-mute 1 = mute 5 aif1dac2_ muterat e 0 aif1dac2 input path (aif1, timeslot 1) soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.) 4 aif1dac2_ unmute_ ramp 0 aif1dac2 input path (aif1, timeslot 1) unmute ramp select 0 = disabling soft-mute (aif1dac2_mute=0) will cause the volume to change immediately to aif1dac2l_vol and aif1dac2r_vol settings 1 = disabling soft-mute (aif1dac2_mute=0)
production data WM8994 w pd, april 2012, rev 4.4 97 register address bit label default description will cause the dac volume to ramp up gradually to the aif1dac2l_vol and aif1dac2r_vol settings table 40 aif1 input path soft mute control aif1 - input path mono mix and de-emphasis filter a digital mono mix can be selected on one or both pairs of aif1 input channels. the mono mix is generated as the sum of the left and right aif channel data. when the mono mix function is enabled, the combined mono signal is applied to the left channel and the right channel of the respective aif1 signal processing and digital mixing paths. to prevent clipping, 6db attenuation is applied to the mono mix. digital de-emphasis can be applied to the aif1 input (playback) paths; this is appropriate when the data source is a cd where pre-emphasis is used in the recording. de-emphasis filtering is available for sample rates of 48khz, 44.1khz and 32khz. see ?dig ital filter characteristics ?section for details of de-emphasis filter characteristics. register address bit label default description r1056 (0420h) aif1 dac1 filters (1) 7 aif1dac1_ mono 0 aif1dac1 input path (aif1, timeslot 0) mono mix control 0 = disabled 1 = enabled 2:1 aif1dac1_ deemp [1:0] 00 aif1dac1 input path (aif1, timeslot 0) de- emphasis control 00 = no de-emphasis 01 = 32khz sample rate 10 = 44.1khz sample rate 11 = 48khz sample rate r1058 (0422h) aif1 dac2 filters (1) 7 aif1dac2_ mono 0 aif1dac2 input path (aif1, timeslot 1) mono mix control 0 = disabled 1 = enabled 2:1 aif1dac2_ deemp [1:0] 00 aif1dac2 input path (aif1, timeslot 1) de- emphasis control 00 = no de-emphasis 01 = 32khz sample rate 10 = 44.1khz sample rate 11 = 48khz sample rate table 41 aif1 input path mono mix and de-emphasis filter control aif2 - output path volume control the aif2 interface supports two output channels. a di gital volume control is provided on each output signal path, allowing attenuation in the range -71.625db to +17.625db in 0.375db steps. the level of attenuation for an eight-bit code x is given by: 0.375 ? (x-192) db for 1 ? x ? 239; mute for x = 0 +17.625db for 239 ? x ? 255 the aif2adc_vu bit controls the loading of digital volume control data. when aif2adc_vu bit is set to 0, the aif2adcl_vol and aif2adcr_vol contr ol data will be loaded into the respective control register, but will not actually change the digital gai n setting. both left and right gain settings are updated when a 1 is written to aif2adc_vu. this makes it possible to update the gain of left and right channels simultaneously.
WM8994 production data w pd, april 2012, rev 4.4 98 register address bit label default description r1280 (0500h) aif2 adc left volume 8 aif2adc_v u n/a aif2adc output path volume update writing a 1 to this bit will cause the aif2adcl and aif2adcr volume to be updated simultaneously 7:0 aif2adcl_ vol [7:0] c0h (0db) aif2adc (left) output path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db (see table 35 for volume range) r1281 (0501h) aif2 adc right volume 8 aif2adc_v u n/a aif2adc output path volume update writing a 1 to this bit will cause the aif2adcl and aif2adcr volume to be updated simultaneously 7:0 aif2adcr_ vol [7:0] c0h (0db) aif2adc (right) output path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db (see table 35 for volume range) table 42 aif2 output path volume control aif2 - output path high pass filter a digital high-pass filter can be enabled in the aif2 output paths to remove dc offsets. this filter is enabled independently in the two aif2 output channels usi ng the register bits described in table 43. the hpf cut-off frequency for the aif2 channels is set using aif2adc_hpf_cut. in hi-fi mode, the high pass filter is optimised for removing dc offsets without degrading the bass response and has a cut-off frequency of 3.7hz when the sample rate (fs) = 44.1khz. in voice modes, the high pass filter is optimised for voice communication; it is recommended to set the cut-off frequency below 300hz. note that the cut-off frequencies scale with the aif2 sample rate. (the aif2 sample rate is set using the aif2_sr register, as described in the ?clocking and sample rates? section.) see table 37 for the hpf cut-off frequencies at all supported sample rates. register address bit label default description r1296 (0510h) aif2 adc filters 14:13 aif2adc_h pf_cut [1:0] 00 aif2adc output path digital hpf cut-off frequency (fc) 00 = hi-fi mode (fc = 4hz at fs = 48khz) 01 = voice mode 1 (fc = 127hz at fs = 8khz) 10 = voice mode 2 (fc = 130hz at fs = 8khz) 11 = voice mode 3 (fc = 267hz at fs = 8khz) 12 aif2adcl_ hpf 0 aif2adc (left) output path digital hpf enable 0 = disabled 1 = enabled 11 aif2adcr_ hpf 0 aif2adc (right) output path digital hpf enable 0 = disabled 1 = enabled table 43 aif2 output path high pass filter
production data WM8994 w pd, april 2012, rev 4.4 99 aif2 - input path volume control the aif2 interface supports two input channels. a di gital volume control is provided on each input signal path, allowing attenuation in the range -71.625db to 0db in 0.375db steps. the level of attenuation for an eight-bit code x is given by: 0.375 ? (x-192) db for 1 ? x ? 192; mute for x = 0 0db for 192 ? x ? 255 the aif2dac_vu bit controls the loading of digital volume control data. when aif2dac_vu bit is set to 0, the aif2dacl_vol and aif2dacr_vol control data will be loaded into the respective control register, but will not actually change the digital gain setting. both left and right gain settings are updated when a 1 is written to aif2dac_vu. this makes it possible to update the gain of left and right channels simultaneously. note that a digital gain function is also avail able at the audio interface input, to boost the dac volume when a small signal is received on dacdat2. see ?digital audio interface control? for further details. digital volume control is also possible at the dac stage of the signal path, after the audio signal has passed through the dac digital mixers. see ?digital to analogue converter (dac)? for further details. register address bit label default description r1282 (0502h) aif2 dac left volume 8 aif2dac_v u n/a aif2dac input path volume update writing a 1 to this bit will cause the aif2dacl and aif2dacr volume to be updated simultaneously 7:0 aif2dacl_ vol [7:0] c0h (0db) aif2dac (left) input path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 39 for volume range) r1283 (0503h) aif2 dac right volume 8 aif2dac_v u n/a aif2dac input path volume update writing a 1 to this bit will cause the aif2dacl and aif2dacr volume to be updated simultaneously 7:0 aif2dacr_ vol [7:0] c0h (0db) aif2dac (right) input path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 39 for volume range) table 44 aif2 input path volume control aif2 - input path soft mute control the WM8994 provides a soft mute function for each of the aif2 interface input paths. when the soft- mute function is selected, the WM8994 gradually attenuates the associated signal paths until the path is entirely muted. when the soft-mute function is de-selected, the gain will either return instantly to the digital gain setting, or will gradually ramp back to the digital gain setting, depending on the aif2dac_unmute_ramp register field. the mute and un-mute ramp rate is selectable between two different rates. the aif2 input paths are soft-muted by default. to play back an audio signal, the soft-mute must first be de-selected by setting aif2dac_mute = 0.
WM8994 production data w pd, april 2012, rev 4.4 100 the soft un-mute would typically be used during playback of audio data so that when the mute is subsequently disabled, a smooth transition is scheduled to the previous volume level and pop noise is avoided. this is desirable when resuming playback after pausing during a track. the soft un-mute would typically not be required when un-muting at the start of a music file, in order that the first part of the music track is not attenuated. the instant un-mute behaviour is desirable in this case, when starting playback of a new track. see ?dac soft mute and soft un-mute? (figure 30) for an illustration of the soft mute function. register address bit label default description r1312 (0520h) aif2 dac filters (1) 9 aif2dac_m ute 1 aif2dac input path soft mute control 0 = un-mute 1 = mute 5 aif2dac_m uterate 0 aif2dac input path soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.) 4 aif2dac_u nmute_ra mp 0 aif2dac input path unmute ramp select 0 = disabling soft-mute (aif2dac_mute=0) will cause the volume to change immediately to aif2dacl_vol and aif2dacr_vol settings 1 = disabling soft-mute (aif2dac_mute=0) will cause the dac volume to ramp up gradually to the aif2dacl_vol and aif2dacr_vol settings table 45 aif2 input path soft mute control aif2 - input path mono mix and de-emphasis filter a digital mono mix can be selected on the aif2 input channels. the mono mix is generated as the sum of the left and right aif channel data. when the mono mix function is enabled, the combined mono signal is applied to the left channel and the right channel of the aif2 signal processing and digital mixing paths. to prevent clipping, 6db attenuation is applied to the mono mix. digital de-emphasis can be applied to the aif2 input (playback) paths; this is appropriate when the data source is a cd where pre-emphasis is used in the recording. de-emphasis filtering is available for sample rates of 48khz, 44.1khz and 32khz. see "digital filter characteristics? section for details of de-emphasis filter characteristics. register address bit label default description r1312 (0520h) aif2 dac filters (1) 7 aif2dac_m ono 0 aif2dac input path mono mix control 0 = disabled 1 = enabled 2:1 aif2dac_d eemp [1:0] 00 aif2dac input path de-emphasis control 00 = no de-emphasis 01 = 32khz sample rate 10 = 44.1khz sample rate 11 = 48khz sample rate table 46 aif2 input path mono mix and de-emphasis filter control
production data WM8994 w pd, april 2012, rev 4.4 101 digital to analogue converter (dac) the WM8994 dacs receive digital input data from the da c mixers - see ?digital mixing?. the digital audio data is converted to oversampled bit streams in the on-chip, true 24-bit digital interpolation filters. the bitstream data enters four multi-bit, sigma-delta dacs, which convert them to high quality analogue audio signals. the multi-bit dac architectur e reduces high frequency noise and sensitivity to clock jitter. it also uses a dynamic element matching technique for high linearity and low distortion. a high performance mode of dac operation can be selected by setting the dac_osr128 bit - see ?clocking and sample rates? for details. the analogue outputs from the dacs can be mixed with analogue line/mic inputs using the line output mixers mixoutl / mixoutr and the speaker output mixers spkmixl / spkmixr. the dacs are enabled using the register bits defined in table 47. note that the dac clock must be enabled whenever the dacs are enabled. register address bit label default description r5 (0005h) power management (5) 3 dac2l_en a 0 left dac2 enable 0 = disabled 1 = enabled 2 dac2r_en a 0 right dac2 enable 0 = disabled 1 = enabled 1 dac1l_en a 0 left dac1 enable 0 = disabled 1 = enabled 0 dac1r_en a 0 right dac1 enable 0 = disabled 1 = enabled table 47 dac enable control dac clocking control clocking for the dacs is derived from sysclk. the required clock is enabled when the sysdspclk_ena register is set. the dac clock rate is configured automatically, according to the aifn_sr, aifnclk_rate and dac_osr128 registers. (see ?clocking and sample rates? for further details of the system clocks and control registers.) when aif1clk is selected as the sysclk sour ce (sysclk_src = 0), then the dac clocking is controlled by the aif1_sr and aif1clk_rate registers. when aif2clk is selected as the sysclk sour ce (sysclk_src = 1), then the dac clocking is controlled by the aif2_sr and aif2clk_rate registers. the supported dac clocking configurations are de scribed in table 48 (for dac_osr128=0) and table 49 (for dac_osr128=1). under default conditions, the dac_osr128 bit is not set.
WM8994 production data w pd, april 2012, rev 4.4 102 sample rate (khz) sysclk rate (aifnclk / fs ratio) 128 192 256 384 512 768 1024 1536 8 ? ? ? ? ? ? 11.025 note 1 ? ? ? ? ? 12 note 1 ? ? ? ? ? 16 note 1 note 1 ? ? ? ? 22.05 note 1 note 1 ? ? ? 24 note 1 note 1 ? ? ? 32 note 1 note 1 ? ? 44.1 note 1 note 1 ? 48 note 1 note 1 ? 88.2 note 1 96 note 1 when dac_osr128=0, dac operation is only supported for the configurations indicated above table 48 dac clocking - dac_osr128 = 0 (default) sample rate (khz) sysclk rate (aifnclk / fs ratio) 128 192 256 384 512 768 1024 1536 8 ? ? ? ? 11.025 ? ? ? ? 12 ? ? ? ? 16 ? ? ? ? 22.05 note 1 ? ? ? 24 note 1 ? ? ? 32 note 1 note 1 ? ? 44.1 note 1 note 1 ? 48 note 1 note 1 ? 88.2 note 1 96 note 1 when dac_osr128=1, dac operation is only supported for the configurations indicated above table 49 dac clocking - dac_osr128 = 1 note 1 - these clocking rates are only supported for ?simple? dac-only playback modes, under the following conditions: ? aif input is enabled on a single interface (aif1 or aif2) only, or is enabled on aif1 and aif2 simultaneously provided aif1 and aif2 are synchronised (ie. aif1clk_src = aif2clk_src) ? all aif output paths are disabled ? all dsp functions (retune? mobile para metric equaliser, 3d stereo expansion and dynamic range control) are disabled the clocking requirements in table 48 and table 49 are only applicable to the aif n clk that is selected as the sysclk source. note that both clocks (aif1clk and aif2clk) must satisfy the requirements noted in the ?clocking and sample rates? section. the applicable clocks (sysclk, and aif1clk or aif2clk) must be present and enabled when using the digital to analogue converters (dacs).
production data WM8994 w pd, april 2012, rev 4.4 103 dac digital volume the output level of each dac can be controlled digitally over a range from -71.625db to 0db in 0.375db steps. the level of attenuation for an eight-bit code x is given by: 0.375 ? (x-192) db for 1 ? x ? 192; mute for x = 0; 0db for 192 ? x ? 255 each of the dacs can be muted using the soft mute control bits described in table 50. the WM8994 always applies a soft mute, where the volume is decreased gradually. the un-mute behaviour is configurable, as described in the ?dac soft mute and soft un-mute? section. the dac1_vu and dac2_vu bits control the loading of digital volume control data. when dac1_vu is set to 0, the dac1l_vol or dac1r_vol control data will be loaded into the respective control register, but will not actually change the digital gain setting. both left and right gain settings are updated when a 1 is written to dac1_vu. this makes it possible to update the gain of both channels simultaneously. a similar function for dac2l and dac2r is controlled by the dac2_vu register bit. register address bit label default description r1552 (0610h) dac1 left volume 9 dac1l_mu te 1 dac1l soft mute control 0 = dac un-mute 1 = dac mute 8 dac1_vu n/a dac1l and dac1r volume update writing a 1 to this bit will cause the dac1l and dac1r volume to be updated simultaneously 7:0 dac1l_vo l [7:0] c0h (0db) dac1l digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 51 for volume range) r1553 (0611h) dac1 right volume 9 dac1r_mu te 1 dac1r soft mute control 0 = dac un-mute 1 = dac mute 8 dac1_vu n/a dac1l and dac1r volume update writing a 1 to this bit will cause the dac1l and dac1r volume to be updated simultaneously 7:0 dac1r_vo l [7:0] c0h (0db) dac1r digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 51 for volume range) r1554 (0612h) dac2 left volume 9 dac2l_mu te 1 dac2l soft mute control 0 = dac un-mute 1 = dac mute 8 dac2_vu n/a dac2l and dac2r volume update writing a 1 to this bit will cause the dac2l and dac2r volume to be updated simultaneously
WM8994 production data w pd, april 2012, rev 4.4 104 register address bit label default description 7:0 dac2l_vo l [7:0] c0h (0db) dac2l digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 51 for volume range) r1555 (0613h) dac2 right volume 9 dac2r_mu te 1 dac2r soft mute control 0 = dac un-mute 1 = dac mute 8 dac2_vu n/a dac2r and dac2r volume update writing a 1 to this bit will cause the dac2r and dac2r volume to be updated simultaneously 7:0 dac2r_vo l [7:0] c0h (0db) dac2r digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db (see table 51 for volume range) table 50 dac digital volume control
production data WM8994 w pd, april 2012, rev 4.4 105 dac volume v olume (db) dac volume v olume (db) dac volume v olume (db) dac volume v olume (db) 0h mute 40h -48.000 80h -24.000 c0h 0.000 1h -71.625 41h -47.625 81h -23.625 c1h 0.000 2h -71.250 42h -47.250 82h -23.250 c2h 0.000 3h -70.875 43h -46.875 83h -22.875 c3h 0.000 4h -70.500 44h -46.500 84h -22.500 c4h 0.000 5h -70.125 45h -46.125 85h -22.125 c5h 0.000 6h -69.750 46h -45.750 86h -21.750 c6h 0.000 7h -69.375 47h -45.375 87h -21.375 c7h 0.000 8h -69.000 48h -45.000 88h -21.000 c8h 0.000 9h -68.625 49h -44.625 89h -20.625 c9h 0.000 ah -68.250 4ah -44.250 8ah -20.250 cah 0.000 bh -67.875 4bh -43.875 8bh -19.875 cbh 0.000 ch -67.500 4ch -43.500 8ch -19.500 cch 0.000 dh -67.125 4dh -43.125 8dh -19.125 cdh 0.000 eh -66.750 4eh -42.750 8eh -18.750 ceh 0.000 fh -66.375 4fh -42.375 8fh -18.375 cfh 0.000 10h -66.000 50h -42.000 90h -18.000 d0h 0.000 11h -65.625 51h -41.625 91h -17.625 d1h 0.000 12h -65.250 52h -41.250 92h -17.250 d2h 0.000 13h -64.875 53h -40.875 93h -16.875 d3h 0.000 14h -64.500 54h -40.500 94h -16.500 d4h 0.000 15h -64.125 55h -40.125 95h -16.125 d5h 0.000 16h -63.750 56h -39.750 96h -15.750 d6h 0.000 17h -63.375 57h -39.375 97h -15.375 d7h 0.000 18h -63.000 58h -39.000 98h -15.000 d8h 0.000 19h -62.625 59h -38.625 99h -14.625 d9h 0.000 1ah -62.250 5ah -38.250 9ah -14.250 dah 0.000 1bh -61.875 5bh -37.875 9bh -13.875 dbh 0.000 1ch -61.500 5ch -37.500 9ch -13.500 dch 0.000 1dh -61.125 5dh -37.125 9dh -13.125 ddh 0.000 1eh -60.750 5eh -36.750 9eh -12.750 deh 0.000 1fh -60.375 5fh -36.375 9fh -12.375 dfh 0.000 20h -60.000 60h -36.000 a0h -12.000 e0h 0.000 21h -59.625 61h -35.625 a1h -11.625 e1h 0.000 22h -59.250 62h -35.250 a2h -11.250 e2h 0.000 23h -58.875 63h -34.875 a3h -10.875 e3h 0.000 24h -58.500 64h -34.500 a4h -10.500 e4h 0.000 25h -58.125 65h -34.125 a5h -10.125 e5h 0.000 26h -57.750 66h -33.750 a6h -9.750 e6h 0.000 27h -57.375 67h -33.375 a7h -9.375 e7h 0.000 28h -57.000 68h -33.000 a8h -9.000 e8h 0.000 29h -56.625 69h -32.625 a9h -8.625 e9h 0.000 2ah -56.250 6ah -32.250 aah -8.250 eah 0.000 2bh -55.875 6bh -31.875 abh -7.875 ebh 0.000 2ch -55.500 6ch -31.500 ach -7.500 ech 0.000 2dh -55.125 6dh -31.125 adh -7.125 edh 0.000 2eh -54.750 6eh -30.750 aeh -6.750 eeh 0.000 2fh -54.375 6fh -30.375 afh -6.375 efh 0.000 30h -54.000 70h -30.000 b0h -6.000 f0h 0.000 31h -53.625 71h -29.625 b1h -5.625 f1h 0.000 32h -53.250 72h -29.250 b2h -5.250 f2h 0.000 33h -52.875 73h -28.875 b3h -4.875 f3h 0.000 34h -52.500 74h -28.500 b4h -4.500 f4h 0.000 35h -52.125 75h -28.125 b5h -4.125 f5h 0.000 36h -51.750 76h -27.750 b6h -3.750 f6h 0.000 37h -51.375 77h -27.375 b7h -3.375 f7h 0.000 38h -51.000 78h -27.000 b8h -3.000 f8h 0.000 39h -50.625 79h -26.625 b9h -2.625 f9h 0.000 3ah -50.250 7ah -26.250 bah -2.250 fah 0.000 3bh -49.875 7bh -25.875 bbh -1.875 fbh 0.000 3ch -49.500 7ch -25.500 bch -1.500 fch 0.000 3dh -49.125 7dh -25.125 bdh -1.125 fdh 0.000 3eh -48.750 7eh -24.750 beh -0.750 feh 0.000 3fh -48.375 7fh -24.375 bfh -0.375 ffh 0.000 table 51 dac digital volume range
WM8994 production data w pd, april 2012, rev 4.4 106 dac soft mute and soft un-mute the WM8994 has a soft mute function which ensures that a gradual attenuation is applied to the dac outputs when the mute is asserted. the soft mute rate can be selected using the dac_muterate bit. when a mute bit is disabled, the gain will either gr adually ramp back up to the digital gain setting, or return instantly to the digital gain setting, depending on the dac_softmutemode register bit. if the gradual un-mute ramp is selected (dac_softmutemode = 1), then the un-mute rate is determined by the dac_muterate bit. note that each dac is soft-muted by default. to play back an audio signal, the mute must first be disabled by setting the applicable mute control to 0 (see table 50). soft mute mode would typically be enabled (dac_softmutemode = 1) when using mute during playback of audio data so that when the mute is subsequently disabled, the volume increase will not create pop noise by jumping immediately to the previous volume level (e.g. resuming playback after pausing during a track). soft mute mode would typically be disabled (dac_softmutemode = 0) when un-muting at the start of a music file, in order that the first part of the track is not attenuated (e.g. when starting playback of a new track, or resuming playback after pausing between tracks). the dac soft-mute function is illustrated in figure 30 for dac1l and dac1r. the same function is applicable to dac2l and dac2r also. = 00000000 = [non-zero] dac1l_mute = 0 dac1r_mute = 0 dac1l_mute = 1 dac1r_mute = 1 dac1l_mute = 0 dac1r_mute = 0 dac1l_mute = 0 dac1r_mute = 0 dac1l_mute = 1 dac1r_mute = 1 dac1l_mute = 0 dac1r_mute = 0 dac1l_vol or dac1r_vol = [non-zero] dac_softmutemode = 0 dac_softmutemode = 1 dac muting and un-muting using volume control bits dac1l_vol and dac1r_vol dac muting and un-muting using soft mute bits dac1l_mute or dac1r_mute soft mute mode not enabled (dac_softmutemode = 0). dac muting and un-muting using soft mute bit dac_mute. soft mute mode enabled (dac_softmutemode = 1). figure 30 dac soft mute control
production data WM8994 w pd, april 2012, rev 4.4 107 the dac soft mute register controls are defined in table 52. the volume ramp rate during soft mute and un-mute is controlled by the dac_muterate bit. ramp rates of fs/32 and fs/2 are selectable. the ramp rate determines the rate at which the volume will be increased or decreased. note that the actual ramp time depends on the extent of the difference between the muted and un-muted volume settings. register address bit label default description r1556 (0614h) dac softmute 1 dac_soft mutemode 0 dac unmute ramp select 0 = disabling soft-mute (dac[1/2][l/r]_mute=0) will cause the dac volume to change immediately to dac[1/2][l/r]_vol settings 1 = disabling soft-mute (dac[1/2][l/r]_mute=0) will cause the dac volume to ramp up gradually to the dac[1/2][l/r]_vol settings 0 dac_mute rate 0 dac soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.) table 52 dac soft-mute control
WM8994 production data w pd, april 2012, rev 4.4 108 analogue output signal path the WM8994 output routing and mixers provide a high degree of flexibility, allowing operation of many simultaneous signal paths through the device to a variety of analogue outputs. the outputs include a ground referenced headphone driver, two switchable class d/ab loudspeaker drivers, an ear speaker driver and four highly flexible line drivers. see ?analogue outputs? for further details of these outputs. the WM8994 output signal paths and control registers are illustrated in figure 31. lineout1n lineout1p hpout1l hpout1r hpout2n in1r in1l mixinr mixinl rec l rec r dac1l dac1r ground loop noise rejection hpout2p dc offset correction spkoutlp spkoutln + + direct voice direct voice spkoutrp spkoutrn direct voice direct voice + + in1lp in1ln in1rn in2ln in2rn in1rp in2lp/vrxn in2rp/vrxp spkmixl spkmixr mixoutl mixoutr lineout1nmix lineout1pmix hpout2mix headphone ground loop noise rejection feedback spkoutlboost spkoutrboost ground loop noise rejection dc offset correction mixoutlvol hpout1lvol spklvol mixoutrvol hpout1rvol spkrvol direct dac l direct dac r lineout2n lineout2p + lineout2nmix lineout2pmix line output ground loop noise rejection feedback + + hpout1r_ena lineout2p_ena dac1l_to_hpout1l hpout1l_mute_n hpout1l_vol[5:0] lineout2_mode lineout2n_mute lineout2p_mute lineout2_vol hpout2_mute hpout2_vol mixoutl_mute_n mixoutl_vol[5:0] spkmixl_to_spkoutr spkmixr_to_spkoutr spkoutr_boost[2:0] spkoutl_mute_n spkoutl_vol[5:0] dac1r_to_mixoutr / dac1r_mixoutr_vol[2:0] in2lrp_to_hpout2 mixoutr_to_lineout2p mixinr_to_spkmixr / mixinr_spkmixr_vol ground loop noise rejection ground loop noise rejection ground loop noise rejection ground loop noise rejection mixinr_to_mixoutl / mixinr_mixoutl_vol[2:0] dac1r_to_hpout1r hpout1r_mute_n hpout1r_vol[5:0] mixoutr_mute_n mixoutr_vol[5:0] mixoutlvol_to_hpout2 mixoutrvol_to_hpout2 in2lrp_to_spkoutr in2lrp_to_spkoutl spkmixl_to_spkoutl spkmixr_to_spkoutl spkoutl_boost[2:0] spkoutr_mute_n spkoutr_vol[5:0] lineout1_mode lineout1n_mute lineout1p_mute lineout1_vol mixoutl_to_lineout2n mixoutr_to_lineout2n in1r_to_lineout2p in1l_to_lineout2p mixoutl_to_lineout1n mixoutr_to_lineout1n in1r_to_lineout1p in1l_to_lineout1p mixoutl_to_lineout1p spkoutl_ena mixoutr_ena mixinl_to_spkmixl / mixinl_spkmixl_vol in1lp_to_spkmixl / in1lp_spkmixl_vol dac1l_to_spkmixl / dac1l_spkmixl_vol mixoutl_to_spkmixl / mixoutl_spkmixl_vol dac1l_to_mixoutl / dac1l_mixoutl_vol[2:0] in2ln_to_mixoutl / in2ln_mixoutl_vol[2:0] in2lp_to_mixoutl / in2lp_mixoutl_vol[2:0] in2rn_to_mixoutl / in2rn_mixoutl_vol[2:0] in1l_to_mixoutl / in1l_mixoutl_vol[2:0] in1r_to_mixoutl / in1r_mixoutl_vol[2:0] mixinl_to_mixoutl / mixinl_mixoutl_vol[2:0] mixinr_to_mixoutr / mixinr_mixoutr_vol[2:0] mixinl_to_mixoutr / mixinl_mixoutr_vol[2:0] in1r_to_mixoutr / in1r_mixoutr_vol[2:0] in1l_to_mixoutr / in1l_mixoutr_vol[2:0] in2rp_to_mixoutr / in2rp_mixoutr_vol[2:0] in2rn_to_mixoutr / in2rn_mixoutr_vol[2:0] in2ln_to_mixoutr / in2ln_mixoutr_vol[2:0] dac1r_to_spkmixr / dac1r_spkmixr_vol in1rp_to_spkmixr / in1rp_spkmixr_vol spkrvol_ena spklvol_ena spkoutr_ena mixoutlvol_ena mixoutrvol_ena mixoutl_ena hpout2_ena hpout1l_ena lineout1n_ena lineout1p_ena lineout2n_ena hpout2_in_ena dac2l dac2r + + dac2l_to_spkmixl / dac2l_spkmixl_vol mixoutr_to_spkmixr / mixoutr_spkmixr_vol dac2r_to_spkmixr / dac2r_spkmixr_vol spkmixl_vol[1:0] spkmixr_vol[1:0] + + figure 31 control registers for output signal path
production data WM8994 w pd, april 2012, rev 4.4 109 output signal paths enable the output mixers and drivers can be independently enabled and disabled as described in table 53. the supply rails for headphone outputs hpout1l and hpout1r are generated using an integrated dual-mode charge pump, which must be enabled whenever the headphone outputs are used. see the ?charge pump? section for details on enabling and configuring this circuit. note that the headphone outputs hpout1l and hpout1r have dedicated output pgas and volume controls. as a result, a low power consumption dac playback path can be supported without needing to enable the output mixers mixoutl / mixoutr or the mixer output pgas mixoutlvol / mixoutrvol. note that the headphone outputs are also controlled by fields located within register r96, which provide suppression of pops & clicks when enabl ing and disabling the hpout1l and hpout1r signal paths. these registers are described in the following ?headphone signal paths enable? section. under recommended usage conditions, the headphone pop suppression control bits will be configured by scheduling the default start-up and shutdown sequences as described in the ?control write sequencer? section. in these cases, the user does not need to set the register fields in r1 and r96 directly. for normal operation of the output signal paths, the reference voltage vmid and the bias current must also be enabled. see ?reference voltages and master bias? for details of the associated controls vmid_sel and bias_ena. register address bit label default description r1 (0001h) power management (1) 13 spkoutr_ena 0 spkmixr mixer, spkrvol pga and spkoutr output enable 0 = disabled 1 = enabled 12 spkoutl_ena 0 spkmixl mixer, spklvol pga and spkoutl output enable 0 = disabled 1 = enabled 11 hpout2_ena 0 hpout2 output stage enable 0 = disabled 1 = enabled 9 hpout1l_ena 0 enables hpout1l input stage 0 = disabled 1 = enabled for normal operation, this bit should be set as the first step of the hpout1l enable sequence. 8 hpout1r_ena 0 enables hpout1r input stage 0 = disabled 1 = enabled for normal operation, this bit should be set as the first step of the hpout1r enable sequence. r3 (0003h) power management (3) 13 lineout1n_ena 0 lineout1n line out and lineout1nmix enable 0 = disabled 1 = enabled 12 lineout1p_ena 0 lineout1p line out and lineout1pmix enable 0 = disabled 1 = enabled
WM8994 production data w pd, april 2012, rev 4.4 110 register address bit label default description 11 lineout2n_ena 0 lineout2n line out and lineout2nmix enable 0 = disabled 1 = enabled 10 lineout2p_ena 0 lineout2p line out and lineout2pmix enable 0 = disabled 1 = enabled 9 spkrvol_ena 0 spkmixr mixer and spkrvol pga enable 0 = disabled 1 = enabled note that spkmixr and spkrvol are also enabled when spkoutr_ena is set. 8 spklvol_ena 0 spkmixl mixer and spklvol pga enable 0 = disabled 1 = enabled note that spkmixl and spklvol are also enabled when spkoutl_ena is set. 7 mixoutlvol_ena 0 mixoutl left volume control enable 0 = disabled 1 = enabled 6 mixoutrvol_ena 0 mixoutr right volume control enable 0 = disabled 1 = enabled 5 mixoutl_ena 0 mixoutl left output mixer enable 0 = disabled 1 = enabled 4 mixoutr_ena 0 mixoutr right output mixer enable 0 = disabled 1 = enabled r56 (0038h) antipop (1) 6 hpout2_in_ena 0 hpout2mix mixer and input stage enable 0 = disabled 1 = enabled table 53 output signal paths enable
production data WM8994 w pd, april 2012, rev 4.4 111 headphone signal paths enable the hpout1l and hpout1r output paths can be actively discharged to agnd through internal resistors if desired. this is desirable at start-up in order to achieve a known output stage condition prior to enabling the vmid reference voltage. this is also desirable in shutdown to prevent the external connections from being affected by the internal circuits. the hpout1l and hpout1r outputs are shorted to agnd by default; the short circ uit is removed on each of these paths by setting the applicable fields hpout1l_rmv_short or hpout1r_rmv_short. the ground-referenced headphone output drivers are designed to suppress pops and clicks when enabled or disabled. however, it is necessary to control the drivers in accordance with a defined sequence in start-up and shutdown to achieve the pop suppression. it is also necessary to schedule the dc servo offset correction at the appropriate poi nt in the sequence (see ?dc servo?). table 54 and table 55 describe the recommended sequences for enabling and disabling these output drivers. sequence headphone enable step 1 hpout1l_ena = 1 hpout1r_ena = 1 step 2 20 ? s delay step 3 hpout1l_dly = 1 hpout1r_dly = 1 step 4 dc offset correction step 5 hpout1l_outp = 1 hpout1l_rmv_short = 1 hpout1r_outp = 1 hpout1r_rmv_short = 1 table 54 headphone output enable sequence sequence headphone disable step 1 hpout1l_rmv_short = 0 hpout1l_dly = 0 hpout1l_outp = 0 hpout1r_rmv_short = 0 hpout1r_dly = 0 hpout1r_outp = 0 step 2 hpout1l_ena = 0 hpout1r_ena = 0 table 55 headphone output disable sequence the register bits relating to pop suppression control are defined in table 56.
WM8994 production data w pd, april 2012, rev 4.4 112 register address bit label default description r1 (0001h) power management (1) 9 hpout1l_ena 0 enables hpout1l input stage 0 = disabled 1 = enabled for normal operation, this bit should be set as the first step of the hpout1l enable sequence. 8 hpout1r_ena 0 enables hpout1r input stage 0 = disabled 1 = enabled for normal operation, this bit should be set as the first step of the hpout1r enable sequence. r96 (0060h) analogue hp (1) 7 hpout1l_rmv_ short 0 removes hpout1l short 0 = hpout1l short enabled 1 = hpout1l short removed for normal operation, this bit should be set as the final step of the hpout1l enable sequence. 6 hpout1l_outp 0 enables hpout1l output stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after the dc offset cancellation has been scheduled. 5 hpout1l_dly 0 enables hpout1l intermediate stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after the output signal path has been configured, and before dc offset cancellation is scheduled. this bit should be set with at least 20us delay after hpout1l_ena. 3 hpout1r_rmv_ short 0 removes hpout1r short 0 = hpout1r short enabled 1 = hpout1r short removed for normal operation, this bit should be set as the final step of the hpout1r enable sequence. 2 hpout1r_outp 0 enables hpout1r output stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after the dc offset cancellation has been scheduled. 1 hpout1r_dly 0 enables hpout1r intermediate stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after the output signal path has been configured, and before dc offset cancellation is scheduled. this bit should be set with at least 20us delay after hpout1r_ena. table 56 headphone output signal paths control
production data WM8994 w pd, april 2012, rev 4.4 113 output mixer control the output mixer path select and volume controls are described in table 57 for the left channel (mixoutl) and table 58 for the right channel (mixoutr). the gain of each of input path may be controlled independently in the range described in table 59. note that the dac input levels may also be controlled by the dac digital volume controls (see ?digital to analogue converter (dac)?) and the audio interface di gital volume controls (see ?digital volume and filter control?). when using the in2lp, in2ln, in2rp or in2rn signal paths to the output mixers, the buffered vmid reference must be enabled, using the vmid_buf_ena register, as described in ?reference voltages and master bias?. register address bit label default description r45 (002dh) output mixer (1) 5 in2rn_to_mixoutl 0 in2rn to mixoutl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2rn input to mixoutl. r49 (0031h) output mixer (5) 8:6 in2rn_mixoutl_vol [2:0] 000 in2rn to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r45 (002dh) output mixer (1) 4 in2ln_to_mixoutl 0 in2ln to mixoutl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2ln input to mixoutl. r47 (002fh) output mixer (3) 8:6 in2ln_mixoutl_vol [2:0] 000 in2ln to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r45 (002dh) output mixer (1) 2 in1l_to_mixoutl 0 in1l pga output to mixoutl mute 0 = mute 1 = un-mute r47 (002fh) output mixer (3) 2:0 in1l_mixoutl_vol [2:0] 000 in1l pga output to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r45 (002dh) output mixer (1) 3 in1r_to_mixoutl 0 in1r pga output to mixoutl mute 0 = mute 1 = un-mute
WM8994 production data w pd, april 2012, rev 4.4 114 register address bit label default description r47 (002fh) output mixer (3) 5:3 in1r_mixoutl_vol [2:0] 000 in1r pga output to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r45 (002dh) output mixer (1) 1 in2lp_to_mixoutl 0 in2lp to mixoutl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2lp input to mixoutl. r47 (002fh) output mixer (3) 11:9 in2lp_mixoutl_vol [2:0] 000 in2lp to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r45 (002dh) output mixer (1) 7 mixinr_to_mixoutl 0 mixinr output (right adc bypass) to mixoutl mute 0 = mute 1 = un-mute r49 (0031h) output mixer (5) 5:3 mixinr_mixoutl_vo l [2:0] 000 mixinr output (right adc bypass) to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r45 (002dh) output mixer (1) 6 mixinl_to_mixoutl 0 mixinl output (left adc bypass) to mixoutl mute 0 = mute 1 = un-mute r49 (0031h) output mixer (5) 2:0 mixinl_mixoutl_vol [2:0] 000 mixinl output (left adc bypass) to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r45 (002dh) output mixer (1) 0 dac1l_to_mixoutl 0 left dac1 to mixoutl mute 0 = mute 1 = un-mute r49 (0031h) output mixer (5) 11:9 dac1l_mixoutl_vol [2:0] 000 left dac1 to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) table 57 left output mixer (mixoutl) control
production data WM8994 w pd, april 2012, rev 4.4 115 register address bit label default description r46 (002eh) output mixer (2) 5 in2ln_to_mixoutr 0 in2ln to mixoutr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2ln input to mixoutr. r50 (0032h) output mixer (6) 8:6 in2ln_mixoutr_vol [2:0] 000 in2ln to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r46 (002eh) output mixer (2) 4 in2rn_to_mixoutr 0 in2rn to mixoutr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2rn input to mixoutr. r48 (0030h) output mixer (4) 8:6 in2rn_mixoutr_vol [2:0] 000 in2rn to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r46 (002eh) output mixer (2) 3 in1l_to_mixoutr 0 in1l pga output to mixoutr mute 0 = mute 1 = un-mute r48 (0030h) output mixer (4) 5:3 in1l_mixoutr_vol [2:0] 000 in1l pga output to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r46 (002eh) output mixer (2) 2 in1r_to_mixoutr 0 in1r pga output to mixoutr mute 0 = mute 1 = un-mute r48 (0030h) output mixer (4) 2:0 in1r_mixoutr_vol [2:0] 000 in1r pga output to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r46 (002eh) output mixer (2) 1 in2rp_to_mixoutr 0 in2rp to mixoutr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2rp input to mixoutr.
WM8994 production data w pd, april 2012, rev 4.4 116 register address bit label default description r48 (0030h) output mixer (4) 11:9 in2rp_mixoutr_vol [2:0] 000 in2rp to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r46 (002eh) output mixer (2) 7 mixinl_to_mixoutr 0 mixinl output (left adc bypass) to mixoutr mute 0 = mute 1 = un-mute r50 (0032h) output mixer (6) 5:3 mixinl_mixoutr_vo l[2:0] 000 mixinl output (left adc bypass) to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r46 (002eh) output mixer (2) 6 mixinr_to_mixoutr 0 mixinr output (right adc bypass) to mixoutr mute 0 = mute 1 = un-mute r50 (0032h) output mixer (6) 2:0 mixinr_mixoutr_vo l [2:0] 000 mixinr output (right adc bypass) to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) r46 (002eh) output mixer (2) 0 dac1r_to_mixoutr 0 right dac1 to mixoutr mute 0 = mute 1 = un-mute r50 (0032h) output mixer (6) 11:9 dac1r_mixoutr_vo l [2:0] 000 right dac1 to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db (see table 59 for volume range) table 58 right output mixer (mixoutr) control
production data WM8994 w pd, april 2012, rev 4.4 117 volume setting volume (db) 000 0 001 -3 010 -6 011 -9 100 -12 101 -15 110 -18 111 -21 table 59 mixoutl and mixoutr volume range speaker mixer control the speaker mixer path select and volume controls are described in table 60 for the left channel (spkmixl) and table 61 for the right channel (spkmixr). care should be taken when enabling more than one path to a speaker mixer in order to avoid clipping. the gain of each input path is adjustable us ing a selectable -3db control in each path to facilitate this. each speaker mixer output is also controlled by an additional independent volume control. note that the dac input levels may also be controlled by the dac digital volume controls (see ?digital to analogue converter (dac)?) and the audio interface di gital volume controls (see ?digital volume and filter control?). when using the in1lp or in1rp signal paths to the speaker mixers, the buffered vmid reference must be enabled, using the vmid_buf_ena regi ster, as described in ?reference voltages and master bias?.
WM8994 production data w pd, april 2012, rev 4.4 118 register address bit label default description r54 (0034h) speaker mixer 9 dac2l_to_spkmixl 0 left dac2 to spkmixl mute 0 = mute 1 = un-mute 7 mixinl_to_spkmixl 0 mixinl (left adc bypass) to spkmixl mute 0 = mute 1 = un-mute 5 in1lp_to_spkmixl 0 in1lp to spkmixl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in1lp input to spkmixl. 3 mixoutl_to_spkmix l 0 left mixer output to spkmixl mute 0 = mute 1 = un-mute 1 dac1l_to_spkmixl 0 left dac1 to spkmixl mute 0 = mute 1 = un-mute r34 (0022h) spkmixl attenuation 6 dac2l_spkmixl_vol 0 left dac2 to spkmixl fine volume control 0 = 0db 1 = -3db 5 mixinl_spkmixl_vol 0 mixinl (left adc bypass) to spkmixl fine volume control 0 = 0db 1 = -3db 4 in1lp_spkmixl_vol 0 in1lp to spkmixl fine volume control 0 = 0db 1 = -3db 3 mixoutl_spkmixl_v ol 0 left mixer output to spkmixl fine volume control 0 = 0db 1 = -3db 2 dac1l_spkmixl_vol 0 left dac1 to spkmixl fine volume control 0 = 0db 1 = -3db 1:0 spkmixl_vol [1:0] 11 left speaker mixer volume control 00 = 0db 01 = -6db 10 = -12db 11 = mute table 60 left speaker mixer (spkmixl) control
production data WM8994 w pd, april 2012, rev 4.4 119 register address bit label default description r54 (0034h) speaker mixer 8 dac2r_to_spkmixr 0 right dac2 to spkmixr mute 0 = mute 1 = un-mute 6 mixinr_to_spkmixr 0 mixinr (right adc bypass) to spkmixr mute 0 = mute 1 = un-mute 4 in1rp_to_spkmixr 0 in1rp to spkmixr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in1rp input to spkmixr. 2 mixoutr_to_spkmix r 0 right mixer output to spkmixr mute 0 = mute 1 = un-mute 0 dac1r_to_spkmixr 0 right dac1 to spkmixr mute 0 = mute 1 = un-mute r35 (0023h) spkmixr attenuation 6 dac2r_spkmixr_vol 0 right dac2 to spkmixr fine volume control 0 = 0db 1 = -3db 5 mixinr_spkmixr_vol 0 mixinr (right adc bypass) to spkmixr fine volume control 0 = 0db 1 = -3db 4 in1rp_spkmixr_vol 0 in1rp to spkmixr fine volume control 0 = 0db 1 = -3db 3 mixoutr_spkmixr_v ol 0 right mixer output to spkmixr fine volume control 0 = 0db 1 = -3db 2 dac1r_spkmixr_vol 0 right dac1 to spkmixr fine volume control 0 = 0db 1 = -3db 1:0 spkmixr_vol [1:0] 11 right speaker mixer volume control 00 = 0db 01 = -6db 10 = -12db 11 = mute table 61 right speaker mixer (spkmixr) control
WM8994 production data w pd, april 2012, rev 4.4 120 output signal path volume control there are six output pgas - mixoutlvol, mixoutrvol, hpout1lvol, hpout1rvol, spklvol and spkrvol. each can be i ndependently controlled, with mixoutlvol and mixoutrvol providing volume control to both the earpiece and line drivers, hpout1lvol and hpout1rvol to the headphone driver, and spklvol and spkrvol to the speaker drivers. the volume control of each of these output pgas can be adjusted over a wide range of values. to minimise pop noise, it is recommended that only the mixoutlvol, mixoutrvol, hpout1lvol, hpout1rvol, spklvol and spkrvol are modifi ed while the output signal path is active. other gain controls are provided in the signal paths to provide scaling of signals from different sources, and to prevent clipping when multiple signals are mixed. however, to prevent pop noise, it is recommended that those other gain controls should not be modified while the signal path is active. to prevent "zipper noise", a zero-cross function is provided on the output pgas. when this feature is enabled, volume updates will not take place until a zero-crossing is detected. in the case of a long period without zero-crossings, a timeout function is provided. when the zero-cross function is enabled, the volume will update after the timeout period if no earlier zero-cross has occurred. the timeout clock is enabled using toclk_ena; the timeout period is set by toclk_div. see ?clocking and sample rates? for more information on these fields. the mixer output pga controls are shown in table 62. the mixout_vu bits control the loading of the output mixer pga volume data. when mixout_vu is set to 0, the volume control data will be loaded into the respective control register, but will not actually change the gain setting. the output mixer pga volume settings are both updated when a 1 is written to either mixout_vu bit. this makes it possible to update the gain of both output paths simultaneously. register address bit label default description r32 (0020h) left opga volume 8 mixout_vu n/a mixer output pga volume update writing a 1 to this bit will update mixoutlvol and mixoutrvol volumes simultaneously. 7 mixoutl_zc 0 mixoutlvol (left mixer output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 mixoutl_mute_n 1 mixoutlvol (left mixer output pga) mute 0 = mute 1 = un-mute 5:0 mixoutl_vol [5:0] 39h (0db) mixoutlvol (left mixer output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db (see table 65 for output pga volume control range) r33 (0021h) right opga volume 8 mixout_vu n/a mixer output pga volume update writing a 1 to this bit will update mixoutlvol and mixoutrvol volumes simultaneously. 7 mixoutr_zc 0 mixoutrvol (right mixer output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 mixoutr_mute_n 1 mixoutlvol (right mixer output pga) mute 0 = mute 1 = un-mute
production data WM8994 w pd, april 2012, rev 4.4 121 register address bit label default description 5:0 mixoutr_vol [5:0] 39h (0db) mixoutrvol (right mixer output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db (see table 65 for output pga volume control range) table 62 mixer output pga (mixoutlvol, mixoutrvol) control the headphone output pga is configurable between two input sources. the default input to each headphone output pga is the respective output mixer (mixoutl or mixoutr). a direct path from the dac1l or dac1r can be selected using the dac1l_to_hpout1l and dac1r_to_hpout1r register bits. when these bits are selected, a dac to headphone playback path is possible without using the output mixers; this offers reduced power consumption by allowing the output mixers to be disabled in this typical usage case. the headphone output pga controls are shown in table 63. the hpout1_vu bits control the loading of the headphone pga volume data. when hpout1_vu is set to 0, the volume control data will be loaded into the respective control register, but will not actually change the gain setting. the headphone pga volume settings are both updated when a 1 is written to either hpout1_vu bit. this makes it possible to update the gain of both output paths simultaneously.
WM8994 production data w pd, april 2012, rev 4.4 122 register address bit label default description r28 (001ch) left output volume 8 hpout1_vu n/a headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1l_zc 0 hpout1lvol (left headphone output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 hpout1l_mute_n 1 hpout1lvol (left headphone output pga) mute 0 = mute 1 = un-mute 5:0 hpout1l_vol [5:0] 2dh (-12db) hpout1lvol (left headphone output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db (see table 65 for output pga volume control range) r45 (002dh) output mixer (1) 8 dac1l_to_hpout1 l 0 hpout1lvol (left headphone output pga) input select 0 = mixoutl 1 = dac1l r29 (001dh) right output volume 8 hpout1_vu n/a headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1r_zc 0 hpout1rvol (right headphone output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 hpout1r_mute_n 1 hpout1rvol (right headphone output pga) mute 0 = mute 1 = un-mute 5:0 hpout1r_vol [5:0] 2dh (-12db) hpout1rvol (right headphone output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db (see table 65 for output pga volume control range) r46 (002eh) output mixer (2) 8 dac1r_to_hpout1 r 0 hpout1rvol (right headphone output pga) input select 0 = mixoutr 1 = dac1r table 63 headphone output pga (hpout1lvol, hpout1rvol) control
production data WM8994 w pd, april 2012, rev 4.4 123 the speaker output pga controls are shown in table 64.the spkout_vu bits control the loading of the speaker pga volume data. when spkout_vu is set to 0, the volume control data will be loaded into the respective control register, but will not actually change the gain setting. the speaker pga volume settings are both updated when a 1 is written to either spkout_vu bit. this makes it possible to update the gain of both output paths simultaneously. register address bit label default description r38 (0026h) speaker volume left 8 spkout_vu n/a speaker output pga volume update writing a 1 to this bit will update spklvol and spkrvol volumes simultaneously. 7 spkoutl_zc 0 spklvol (left speaker output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 spkoutl_mute_n 1 spklvol (left speaker output pga) mute 0 = mute 1 = un-mute 5:0 spkoutl_vol [5:0] 39h (0db) spklvol (left speaker output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db (see table 65 for output pga volume control range) r39 (0027h) speaker volume right 8 spkout_vu n/a speaker pga volume update writing a 1 to this bit will update spklvol and spkrvol volumes simultaneously. 7 spkoutr_zc 0 spkrvol (right speaker output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 spkoutr_mute_n 1 spkrvol (right speaker output pga) mute 0 = mute 1 = un-mute 5:0 spkoutr_vol [5:0] 39h (0db) spkrvol (right speaker output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db (see table 65 for output pga volume control range) table 64 speaker output pga (spklvol, spkrvol) control
WM8994 production data w pd, april 2012, rev 4.4 124 pga gain setting volume (db) pga gain setting volume (db) 00h -57 20h -25 01h -56 21h -24 02h -55 22h -23 03h -54 23h -22 04h -53 24h -21 05h -52 25h -20 06h -51 26h -19 07h -50 27h -18 08h -49 28h -17 09h -48 29h -16 0ah -47 2ah -15 0bh -46 2bh -14 0ch -45 2ch -13 0dh -44 2dh -12 0eh -43 2eh -11 0fh -42 2fh -10 10h -41 30h -9 11h -40 31h -8 12h -39 32h -7 13h -38 33h -6 14h -37 34h -5 15h -36 35h -4 16h -35 36h -3 17h -34 37h -2 18h -33 38h -1 19h -32 39h 0 1ah -31 3ah +1 1bh -30 3bh +2 1ch -29 3ch +3 1dh -28 3dh +4 1eh -27 3eh +5 1fh -26 3fh +6 table 65 output pga volume range
production data WM8994 w pd, april 2012, rev 4.4 125 speaker boost mixer each class d/ab speaker driver has its own boost mixer which performs a dual role. it allows the output from the left speaker mixer (via spklvol), right speaker mixer (via spkrvol), or the ?direct voice? path to be routed to either speaker driver. the speaker boost mixers are controlled using the registers defined in table 66 below. the ?direct voice? path is the differential input, vrxn-vrxp, routed directly to the output drivers, providing a low power differential path from baseband voice to loudspeakers. note that a phase inversion exists between vrxp and spkoutxp. the ?direct voice? path output therefore represents v vrxn - v vrxp . the second function of the speaker boost mixers is that they provide an additional ac gain (boost) function to shift signal levels between the avdd1 and spkvdd voltage domains for maximum output power. the ac gain (boost) function is described in the ?analogue outputs? section. register address bit label default description r36 (0024h) spkout mixers 5 in2lrp_to_spkout l 0 direct voice (vrxn-vrxp) to left speaker mute 0 = mute 1 = un-mute 4 spkmixl_to_spkou tl 1 spkmixl left speaker mixer to left speaker mute 0 = mute 1 = un-mute 3 spkmixr_to_spko utl 0 spkmixr right speaker mixer to left speaker mute 0 = mute 1 = un-mute 2 in2lrp_to_spkout r 0 direct voice (vrxn-vrxp) to right speaker mute 0 = mute 1 = un-mute 1 spkmixl_to_spkou tr 0 spkmixl left speaker mixer to right speaker mute 0 = mute 1 = un-mute 0 spkmixr_to_spko utr 1 spkmixr right speaker mixer to right speaker mute 0 = mute 1 = un-mute table 66 speaker boost mixer (spkoutlboost, spkoutrboost) control earpiece driver mixer the earpiece driver has a dedicated mixer, hpout2mix, which is controlled using the registers defined in table 67. the earpiece driver is configurable to select output from the left output mixer (via mixoutlvol), the right output mixer (via mixoutrvol), or the ?direct voice? path. the ?direct voice? path is the differential input, vrxn-vrxp, routed directly to the output drivers, providing a low power differential path from baseband voice to earpiece. note that a phase inversion exists between vrxp and hpout2p. the ?direct voice? path output therefore represents v vrxn - v vrxp . care should be taken to avoid clipping when enabling more than one path to the earpiece driver. the hpout2vol volume control can be used to avoid clipping when more than one full scale signal is input to the mixer.
WM8994 production data w pd, april 2012, rev 4.4 126 register address bit label default description r31 (001fh) hpout2 volume 5 hpout2_mute 1 hpout2 (earpiece driver) mute 0 = un-mute 1 = mute 4 hpout2_vol 0 hpout2 (earpiece driver) volume 0 = 0db 1 = -6db r51 (0033h) hpout2 mixer 5 in2lrp_to_hpout2 0 direct voice (vrxn-vrxp) to earpiece driver 0 = mute 1 = un-mute 4 mixoutlvol_to_hp out2 0 mixoutlvol (left output mixer pga) to earpiece driver 0 = mute 1 = un-mute 3 mixoutrvol_to_hp out2 0 mixoutrvol (right output mixer pga) to earpiece driver 0 = mute 1 = un-mute table 67 earpiece driver mixer (hpout2mix) control line output mixers the WM8994 provides two pairs of line outputs, both with highly configurable output mixers. the outputs lineout1n and lineout1p can be confi gured as two single-ended outputs or as a differential output. in the same manner, lineout2n and lineout2p can be configured either as two single-ended outputs or as a differential output. the respective line output mixers can be configured in single-ended mode or differential mode; each mode supports multiple signal path configurations. lineout1 single-ended mode is selected by setting lineout1_mode = 1. in single-ended mode, any of three possible signal paths may be enabled: ? mixoutl (left output mixer) to lineout1p ? mixoutr (right output mixer) to lineout1n ? mixoutl (left output mixer) to lineout1n lineout1 differential mode is selected by setting lineout1_mode = 0. in differential mode, any of three possible signal paths may be enabled: ? mixoutl (left output mixer) to lineout1n and lineout1p ? in1l (input pga) to lineout1n and lineout1p ? in1r (input pga) to lineout1n and lineout1p the lineout1 output mixers are controlled as described in table 68. care should be taken to avoid clipping when enabling more than one path to the line output mixers. the lineout1_vol control can be used to provide -6db attenuation when more than one full scale signal is applied. when using the lineout1 mixers in single-ended mode, a buffered vmid must be enabled. this is achieved by setting lineout_vmid_buf_ena, as described in the ?analogue outputs? section.
production data WM8994 w pd, april 2012, rev 4.4 127 register address bit label default description r30 (001eh) line outputs volume 6 lineout1n_mute 1 lineout1n line output mute 0 = un-mute 1 = mute 5 lineout1p_mute 1 lineout1p line output mute 0 = un-mute 1 = mute 4 lineout1_vol 0 lineout1 line output volume 0 = 0db 1 = -6db applies to both lineout1n and lineout1p r52 (0034h) line mixer (1) 6 mixoutl_to_lineo ut1n 0 mixoutl to single-ended line output on lineout1n 0 = mute 1 = un-mute (lineout1_mode = 1) 5 mixoutr_to_line out1n 0 mixoutr to single-ended line output on lineout1n 0 = mute 1 = un-mute (lineout1_mode = 1) 4 lineout1_mode 0 lineout1 mode select 0 = differential 1 = single-ended 2 in1r_to_lineout1 p 0 in1r input pga to differential line output on lineout1 0 = mute 1 = un-mute (lineout1_mode = 0) 1 in1l_to_lineout1 p 0 in1l input pga to differential line output on lineout1 0 = mute 1 = un-mute (lineout1_mode = 0) 0 mixoutl_to_lineo ut1p 0 differential mode (lineout1_mode = 0): mixoutl to differential output on lineout1 0 = mute 1 = un-mute single ended mode (lineout1_mode = 1): mixoutl to single-ended line output on lineout1p 0 = mute 1 = un-mute table 68 lineout1n and lineout1p control
WM8994 production data w pd, april 2012, rev 4.4 128 lineout2 single-ended mode is selected by setting lineout2_mode = 1. in single-ended mode, any of three possible signal paths may be enabled: ? mixoutr (right output mixer) to lineout2p ? mixoutl (left output mixer) to lineout2n ? mixoutr (right output mixer) to lineout2n lineout2 differential mode is selected by setting lineout2_mode = 0. in differential mode, any of three possible signal paths may be enabled: ? mixoutr (right output mixer) to lineout2n and lineout2p ? in1l (input pga) to lineout2p and lineout2p ? in1r (input pga) to lineout2n and lineout2p the lineout2 output mixers are controlled as described in table 69. care should be taken to avoid clipping when enabling more than one path to the line output mixers. the lineout2_vol control can be used to provide -6db attenuation when more than one full scale signal is applied. when using the lineout2 mixers in single-ended mode, a buffered vmid must be enabled. this is achieved by setting lineout_vmid_buf_ena, as described in the ?analogue outputs? section.
production data WM8994 w pd, april 2012, rev 4.4 129 register address bit label default description r30 (001eh) line outputs volume 2 lineout2n_mute 1 lineout2n line output mute 0 = un-mute 1 = mute 1 lineout2p_mute 1 lineout2p line output mute 0 = un-mute 1 = mute 0 lineout2_vol 0 lineout2 line output volume 0 = 0db 1 = -6db applies to both lineout2n and lineout2p r53 (0035h) line mixer (2) 6 mixoutr_to_lineo ut2n 0 mixoutr to single-ended line output on lineout2n 0 = mute 1 = un-mute (lineout2_mode = 1) 5 mixoutl_to_lineo ut2n 0 mixoutl to single-ended line output on lineout2n 0 = mute 1 = un-mute (lineout2_mode = 1) 4 lineout2_mode 0 lineout2 mode select 0 = differential 1 = single-ended 2 in1l_to_lineout2p 0 in1l input pga to differential line output on lineout2 0 = mute 1 = un-mute (lineout2_mode = 0) 1 in1r_to_lineout2p 0 in1r input pga to differential line output on lineout2 0 = mute 1 = un-mute (lineout2_mode = 0) 0 mixoutr_to_lineo ut2p 0 differential mode (lineout2_mode = 0): mixoutr to differential output on lineout2 0 = mute 1 = un-mute single-ended mode (lineout2_mode = 0): mixoutr to single-ended line output on lineout2p 0 = mute 1 = un-mute table 69 lineout2n and lineout2p control
WM8994 production data w pd, april 2012, rev 4.4 130 charge pump the WM8994 incorporates a dual-mode charge pump which generates the supply rails for the headphone output drivers, hpout1l and hpout1r. the charge pump has a single supply input, cpvdd, and generates split rails cpvoutp and cpvoutn according to the selected mode of operation. the charge pump connections are illustrated in figure 32 (see ?applications information? for external component values). an input decoupling capacitor may also be required at cpvdd, depending upon the system configuration. cpvdd charge pump cpvoutp cpvoutn cpca cpcb cpgnd figure 32 charge pump external connections the charge pump is enabled by setting the cp_ena bit. when enabled, the charge pump adjusts the output voltages (cpvoutp and cpvoutn) as well as the switching frequency in order to optimise the power consumption according to the operating c onditions. this can take two forms, which are selected using the cp_dyn_pwr register bit. ? register control (cp_dyn_pwr = 0) ? dynamic control (cp_dyn_pwr = 1) under register control, the hpout1l_vol and hpout1 r_vol register settings are used to control the charge pump mode of operation. under dynamic control, the audio signal level in the digital audio interface is used to control the charge pump mode of operation. the cp_dyn_src_sel register determines which of the digital signal paths is used for this function - this may be aif1 timeslot 0, aif timeslot 1 or aif2. the cp_dyn_src_sel should be set according to the active source for the hpout1l and hpout1r outputs. the dynamic charge pump control mode is the wolfson ?class w? mode, which allows the power consumption to be optimised in real time, but can only be used if a single aif source is the only signal source. the class w mode should not be used if any of the bypass paths are used to feed analogue inputs into the output signal path, or if more than one aif source is used to feed the headphone output via the digital mixers. under the recommended usage conditions of the WM8994, the charge pump will be enabled by running the default headphone start-up sequence as described in the ?control write sequencer? section. (similarly, it will be disabled by runni ng the shut-down sequence.) in these cases, the user does not need to write to the cp_ena bit. the charge pump operating mode defaults to register control; dynamic control may be selected by setting the cp_dyn_pwr register bit, if appropriate.
production data WM8994 w pd, april 2012, rev 4.4 131 note that the charge pump clock is derived from i nternal clock sysclk; either mclk or the fll output selectable using the sysclk_src bit. under nor mal circumstances an external clock signal must be present for the charge pump to function. however, the fll has a free-running mode that does not require an external clock but will generate an internal clock suitable for running the charge pump. the clock division from sysclk is handled transparently by the WM8994 without user intervention, as long as sysclk and sample rates are set correctly. refer to the ?clocking and sample rates? section for more detail on the fll and clocking configuration. when the charge pump is disabled, the output can be left floating or can be actively discharged, depending on the cp_disch control bit. if the headphone output drivers (hpout1l and hpout1r) are not used, then the charge pump and the associated external components are not required. the charge pump and headphone drivers should not be enabled in this case (cp_ena=0, hpout1l_ena=0, hpout1r_ena=0). if the charge pump is not used, and the associated external components are omitted, then the cpca and cpcb pins can be left floating; the cpvoutp and cpvoutn pins should be grounded as illustrated in figure 33. note that, when the charge pump is disabled, it is still recommended that the cpvdd pin is kept within its recommended operating conditions (1.71v to 2.0v). figure 33 external configuration when charge pump not used
WM8994 production data w pd, april 2012, rev 4.4 132 the charge pump control fields are described in table 70. register address bit label default description r76 (004ch) charge pump (1) 15 cp_ena 0 enable charge-pump digits 0 = disable 1 = enable r77 (004dh) charge pump (2) 15 cp_disch 1 charge pump discharge select 0 = charge pump outputs floating when disabled 1 = charge pump outputs discharged when disabled r81 (0051h) class w (1) 9:8 cp_dyn_src_sel 00 selects the digital audio source for envelope tracking 00 = aif1, dac timeslot 0 01 = aif1, dac timeslot 1 10 = aif2, dac data 11 = reserved 0 cp_dyn_pwr 0 enable dynamic charge pump power control 0 = charge pump controlled by volume register settings (class g) 1 = charge pump controlled by real-time audio level (class w) table 70 charge pump control dc servo the WM8994 provides a dc servo circuit on the headphone outputs hpout1l and hpout1r in order to remove dc offset from these ground-referenced outputs. when enabled, the dc servo ensures that the dc level of these outputs remains within 1mv of ground. removal of the dc offset is important because any deviation from gnd at the output pin will cause current to flow through the load under quiescent conditions, resulting in incr eased power consumption. additionally, the presence of dc offsets can result in audible pops and clicks at power up and power down. the recommended usage of the dc servo is initialised by running the default start-up sequence as described in the ?control write sequencer? section. the default start-up sequence executes a series of dc offset corrections, after which the measured offset correction is maintained on the headphone output channels. if a different usage is required, eg. if a periodic dc offset correction is required, then the default start-up sequence may be modified accord ing to specific requirements. the relevant control fields are described in the following paragraphs and are defined in table 71. dc servo enable and start-up the dc servo circuit is enabled on hpout1l and hpout1r by setting dcs_ena_chan_0 and dcs_ena_chan_1 respectively. when the dc serv o is enabled, the dc offset correction can be commanded in a number of different ways, including single-shot and periodically recurring events. writing a logic 1 to dcs_trig_startup_ n initiates a series of dc offset measurements and applies the necessary correction to the associated output; (?n? = 0 for left channel, 1 for right channel). on completion, the headphone output will be within 1mv of agnd. this is the dc servo mode selected by the default start-up sequence. completion of the dc offset correction triggered in this way is indicated by the dcs_startup_complete field, as described in table 71. typically, this operation takes 86ms per channel. for correct operation of the dc servo start-up mode, it is important that there is no active audio signal present on the signal path while the mode is running. the dc servo start-up mode should be scheduled at the correct position within the headphone output enable sequence, as described in the ?analogue output signal path? section. all other stages of the analogue signal path should be fully enabled prior to commanding the start-up mode; the dac digital mute function should be used, where appropriate, to ensure there is no active audio signal present during the dc servo measurements.
production data WM8994 w pd, april 2012, rev 4.4 133 writing a logic 1 to dcs_trig_dac_wr_ n causes the dc offset correction to be set to the value contained in the dcs_dac_wr_val_ n fields in register r89. this mode is useful if the required offset correction has already been determined and stored; it is faster than the dcs_trig_startup_ n mode, but relies on the accuracy of the stored settings. completion of the dc offset correction triggered in this way is indicated by the dcs_dac_wr_complete field, as described in table 71. typically, this operation takes 2ms per channel. for pop-free operation of the dc servo dac write mode, it is important that the mode is scheduled at the correct position within the headphone output enable sequence, as described in the ?analogue output signal path? section. the current dc offset value for each headphone output channel can be read from the dcs_dac_wr_val_ n fields. these values may form the basis of settings that are subsequently used by the dc servo in dac write mode. note that these fields have a different definition for read and write, as described in table 71. when using either of the dc servo options above, the status of the dc offset correction process is indicated by the dcs_cal_complete field; this is the logical or of the dcs_startup_complete and dcs_dac_wr_complete fields. the dcs_dac_wr_complete bits can be used as i nputs to the interrupt control circuit or used to generate an external logic signal on a gpio pin. see ?interrupts? and ?general purpose input/output? for further details. the dc servo control fields associated with s tart-up operation are described in table 71. it is important to note that, to minimise audible pops/clicks, the start-up and dac write modes of dc servo operation should be commanded as part of a control sequence which includes muting and shorting of the headphone outputs; a suitable sequence is defined in the default start-up sequence. register address bit label default description r84 (0054h) dc servo (1) 5 dcs_trig_start up_1 0 writing 1 to this bit selects start- up dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 4 dcs_trig_start up_0 0 writing 1 to this bit selects start- up dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 3 dcs_trig_dac_w r_1 0 writing 1 to this bit selects dac write dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 2 dcs_trig_dac_w r_0 0 writing 1 to this bit selects dac write dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 1 dcs_ena_chan_1 0 dc servo enable for hpout1r 0 = disabled 1 = enabled 0 dcs_ena_chan_0 0 dc servo enable for hpout1l 0 = disabled 1 = enabled
WM8994 production data w pd, april 2012, rev 4.4 134 register address bit label default description r88 (0058h) dc servo readback 9:8 dcs_cal_compl ete [1:0] 00 dc servo complete status 0 = dac write or start-up dc servo mode not completed. 1 = dac write or start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l 5:4 dcs_dac_wr_co mplete [1:0] 00 dc servo dac write status 0 = dac write dc servo mode not completed. 1 = dac write dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l 1:0 dcs_startup_c omplete [1:0] 00 dc servo start-up status 0 = start-up dc servo mode not completed. 1 = start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l r89 (0059h) dc servo write val 15:8 dcs_dac_wr_va l_1 [7:0] 00h writing to this field sets the dc offset value for hpout1r in dac write dc servo mode. reading this field gives the current dc offset value for hpout1r. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv 7:0 dcs_dac_wr_va l_0 [7:0] 00h writing to this field sets the dc offset value for hpout1l in dac write dc servo mode. reading this field gives the current dc offset value for hpout1l. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv table 71 dc servo enable and start-up modes dc servo active modes the dc servo modes described above are suitable for initialising the dc offset correction circuit on the headphone outputs as part of a controlled start-up sequence which is executed before the signal path is fully enabled. additional modes are available for use whilst the signal path is active; these modes may be of benefit following a large change in signal gain, which can lead to a change in dc offset level. periodic updates may also be desirable to remove slow drifts in dc offset caused by changes in parameters such as device temperature. the dc servo circuit is enabled on hpout1l and hpout1r by setting dcs_ena_chan_0 and dcs_ena_chan_1 respectively, as described earlier in table 71. writing a logic 1 to dcs_trig_single_ n initiates a single dc offset measurement and adjustment to the associated output; (?n? = 0 for left channel, 1 for right channel). this will adjust the dc offset correction on the selected channel by no more than 1lsb (0.25mv). setting dcs_timer_period_01 to a non-zero value will cause a single dc offset measurement and adjustment to be scheduled on a periodic basis. periodic rates ranging from every 0.52s to in excess of 2 hours can be selected.
production data WM8994 w pd, april 2012, rev 4.4 135 writing a logic 1 to dcs_trig_series_ n initiates a series of dc offset measurements and applies the necessary correction to the associated output. the number of dc servo operations performed is determined by dcs_series_no_01. a maximum of 128 operations may be selected, though a much lower value will be sufficient in most applications. the dc servo control fields associated with active modes (suitable for use on a signal path that is in active use) are described in table 72. register address bit label default description r84 (0054h) dc servo (1) 13 dcs_trig_single _1 0 writing 1 to this bit selects a single dc offset correction for hpout1r. in readback, a value of 1 indicates that the dc servo single correction is in progress. 12 dcs_trig_single _0 0 writing 1 to this bit selects a single dc offset correction for hpout1l. in readback, a value of 1 indicates that the dc servo single correction is in progress. 9 dcs_trig_series _1 0 writing 1 to this bit selects a series of dc offset corrections for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 8 dcs_trig_series _0 0 writing 1 to this bit selects a series of dc offset corrections for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. r85 (0055h) dc servo (2) 11:5 dcs_series_no_ 01 [6:0] 010 1010 number of dc servo updates to perform in a series event. 0 = 1 update 1 = 2 updates ... 127 = 128 updates 3:0 dcs_timer_peri od_01 [3:0] 1010 time between periodic updates. time is calculated as 0.251s x (2^period), where period = dcs_timer_period_01. 0000 = off 0001 = 0.502s ?. 1010 = 257s (4min 17s) 1111 = 8225s (2hr 17min) table 72 dc servo active modes
WM8994 production data w pd, april 2012, rev 4.4 136 gpio / interrupt outputs from dc servo when using the dc servo start-up or dac write modes, the dcs_cal_complete register provides readback of the status of the dc offset correc tion. this can be read from register r88 as described in table 71. the dcs_cal_complete bits can also be used as inputs to the interrupt control circuit and used to trigger an interrupt event - see ?interrupts?. the dcs_cal_complete bits can also be used as inputs to the gpio function and used to generate external logic signals indicating the dc servo status. see ?general purpose input/output? for details of how to configure a gpio pin to output the dc servo status.
production data WM8994 w pd, april 2012, rev 4.4 137 analogue outputs the speaker, headphone, earpiece and line outputs are highly configurable and may be used in many different ways. speaker output configurations the speaker outputs spkoutl and spkoutr can be driven by either of the speaker mixers, spkmixl or spkmixr, or by the low power, differential direct voice path from in2lp/vrxn and in2rp/vrxp. fine volume control is available on the speaker mixer paths using the spklvol and spkrvol pgas. a boost function is available on both the speaker mixer paths and the direct voice path. for information on the speaker mixing options, refer to the ?analogue output signal path? section. the speaker outputs spkoutl and spkoutr operate in a btl configuration in class ab or class d amplifier modes. the default mode is class d but class ab mode can be selected by setting the spkout_classab register bit, as defined in table 74. the speaker outputs can be configured as a pai r of stereo outputs, or as a single mono output. note that, for applications requiring only a single speaker output, it is possible to improve the thd performance by configuring the speaker outputs in m ono mode. see ?typical performance? for further details. the mono configuration is selected by applying a logic high input to the spkmode pin (a3), as described in table 73. for stereo mode this pin should be connected to gnd. note that spkmode is referenced to dbvdd. an internal pull-up resistor is enabled by default on the spkmode pin; this can be configured using the spkmode_pu register bit described in table 74. speaker configuration spkmode pin (a3) stereo mode gnd mono mode dbvdd table 73 spkmode pin function in the mono configuration, the p channels, spkoutlp and spkoutrp should be connected together on the pcb, and similarly with the n channel s, spkoutln and spkoutrn, as illustrated in figure 34. in this configuration both left and right speaker drivers should be enabled (spkoutl_ena=1 and spkoutr_ena=1), but path selection and volume controls are available on left channel only (spkmixl, spklvol and spkoutlboost). note that the minimum speaker load resistance and the maximum power output has a dependency on the spkmode output configuration, and also on the class d/ab mode selection. see ?electrical characteristics? for further details. stereo mono figure 34 stereo / mono speaker output configurations
WM8994 production data w pd, april 2012, rev 4.4 138 eight levels of ac signal boost are provided in order to deliver maximum output power for many commonly-used spkvdd/avdd1 combinations. (note that spkvdd1 powers the left speaker driver, and spkvdd2 powers the right speaker driver; it is assumed that spkvdd1 = spkvdd2 = spkvdd.) the signal boost options are available in both clas s ab and class d modes. the ac boost levels from 0db to +12db are selected using register bits spkoutl_boost and spkoutr_boost. to prevent pop noise, spkoutl_boost and spkoutr_boost should not be modified while the speaker outputs are enabled. figure 35 illustrates the speaker outputs and the mixing and gain/boost options available. ultra-low leakage and high psrr allow the speaker supply spkvdd to be directly connected to a lithium battery. note that an appropriate spkvdd supply voltage must be provided to prevent waveform clipping when speaker boost is used. dc gain is applied automatically in both class ab and class d modes with a shift from vmid to spkvdd/2. this provides optimum signal swing for maximum output power. in class ab mode, an ultra-high psrr mode is available, in which the dc reference for the speaker driver is fixed at vmid. this mode is selected by enabling the spkab_ref_sel bit (see table 74). in this mode, the output power is limited but the driver will still be capable of driving more than 500mw in 8 ? while maintaining excellent suppression of noise on spkvdd (for example, tdma noise in a gsm phone application). the ac and dc gain functions are illustrated in figure 35. figure 35 speaker output configuration and ac boost operation
production data WM8994 w pd, april 2012, rev 4.4 139 register address bit label default description r35 (0023h) spkmixr attenuation 8 spkout_classab 0 speaker class ab mode enable 0 = class d mode 1 = class ab mode r37 (0025h) classd 5:3 spkoutl_boost [2:0] 000 (1.0x) left speaker gain boost 000 = 1.00x boost (+0db) 001 = 1.19x boost (+1.5db) 010 = 1.41x boost (+3.0db) 011 = 1.68x boost (+4.5db) 100 = 2.00x boost (+6.0db) 101 = 2.37x boost (+7.5db) 110 = 2.81x boost (+9.0db) 111 = 3.98x boost (+12.0db) 2:0 spkoutr_boost [2:0] 000 (1.0x) right speaker gain boost 000 = 1.00x boost (+0db) 001 = 1.19x boost (+1.5db) 010 = 1.41x boost (+3.0db) 011 = 1.68x boost (+4.5db) 100 = 2.00x boost (+6.0db) 101 = 2.37x boost (+7.5db) 110 = 2.81x boost (+9.0db) 111 = 3.98x boost (+12.0db) r34 (0022h) spkmixl attenuation 8 spkab_ref_sel 0 selects reference for speaker in class ab mode 0 = spkvdd/2 1 = vmid r1825 (0721h) pull control (2) 1 spkmode_pu 1 spkmode pull-up enable 0 = disabled 1 = enabled table 74 speaker mode and boost control clocking of the class d output driver is derived from sysclk. the clocking frequency division is configured automatically, according to the aifn_sr and aifnclk_rate registers. (see ?clocking and sample rates? for further details of the system clocks and control registers.) the class d switching clock is enabled whenever spkoutl_ena or spkoutr_ena is set, provided also that spkout_classab = 0. the frequency is as described in table 75. when aif1clk is selected as the sysclk source (sysclk_src = 0), then the class d clock frequency is controlled by the aif1_sr and aif1clk_rate registers. when aif2clk is selected as the sysclk source (sysclk_src = 1), then the class d clock frequency is controlled by the aif2_sr and aif2clk_rate registers. note that the applicable clocks (sysclk, aif1clk or aif2clk) must be present and enabled when using the speaker outputs in class d mode.
WM8994 production data w pd, april 2012, rev 4.4 140 sample rate (khz) sysclk rate (aifnclk / fs ratio) 128 192 256 384 512 768 1024 1536 8 256 256 341.3 256 341.3 256 341.3 256 11.025 352.8 352.8 352.8 352.8 352.8 352.8 352.8 12 384 384 384 384 384 384 384 16 341.3 384 341.3 384 341.3 384 22.05 352.8 352.8 352.8 352.8 352.8 24 384 384 384 384 384 32 341.3 384 341.3 384 44.1 352.8 352.8 352.8 48 384 384 384 88.2 352.8 96 384 table 75 class d switching frequency (khz) headphone output configurations the headphone outputs hpout1l and hpout1r are driven by the headphone output pgas hpout1lvol and hpout1rvol. each pga has its own dedicated volume control, as described in the ?analogue output signal path? section. the input to these pgas can be either the output mixers mixoutl and mixoutr or the direct dac1 outputs dac1l and dac1r. the headphone output driver is capable of driving up to 30mw into a 16 ? load or 25mw into a 32 ? load such as a stereo headset or headphones. the outputs are ground-referenced, eliminating any requirement for ac coupling capacitors. this is achieved by having separate positive and negative supply rails powered by an on-chip charge pump. a dc servo circuit removes any dc offset from the headphone outputs, suppressing ?pop? noise and minimising power consumption. the charge pump and dc servo are described separately (see ?charge pump? and ?dc servo? respectively). it is recommended to connect a zobel network to the headphone output pins hpout1l and hpout1r for best audio performance in all applications. the components of the zobel network have the effect of dampening high frequency oscillations or instabilities that can arise outside the audio band under certain conditions. possible sources of these instabilities include the inductive load of a headphone coil or an active load in the form of an external line amplifier. the capacitance of lengthy cables or pcb tracks can also lead to amplifier instability. the zobel network should comprise of a 20 ? resistor and 100nf capacitor in series with each other, as illustrated in figure 36. if any ground-referenced headphone output is not used, then the zobel network components can be omitted from the corresponding output pin, and the pin can be left floating. the respective headphone driver(s) should not be enabled in this case. figure 36 zobel network components for hpout1l and hpout1r
production data WM8994 w pd, april 2012, rev 4.4 141 the headphone output incorporates a common mode, or ground loop, feedback path which provides rejection of system-related ground noise. the return path is via hpout1fb. this pin must be connected to ground for normal operation of the headphone output. no register configuration is required. note that the hpout1fb pin should be connected to gnd close to the headphone jack, as illustrated in figure 36. earpiece driver output configurations the earpiece driver outputs hpout2p and hpout2n are driven by the hpout2mix output mixer, which can take inputs from the mixer output pgas mixoutlvol and mixoutrvol, or from the low power, differential direct voice path in2lp/vrxn and in 2rp/vrxp. fine volume control is available on the output mixer paths using mixoutlvol and mixoutrvol. a selectable -6db attenuation is available on the hpout2mix output, as described in table 67 (refer to the ?analogue output signal path? section). the earpiece outputs are designed to operate in a btl configuration, driving 50mw into a typical 16 ? ear speaker. for suppression of pop noise there are two separate enables for the earpiece driver; hpout2_ena enables the output stage and hpout2_in_ena enables the mixer and input stage. hpout2_in_ena should be enabled a minimum of 50 ? s before hpout2_ena ? see ?control write sequencer? section for an example power sequence. line output configurations the four line outputs lineout1p, lineout1n, lin eout2p and lineout2n provide a highly flexible combination of differential and single-ended configurations, each driven by a dedicated output mixer. there is a selectable -6db gain option in each mixer to avoid clipping when mixing more than one signal into a line output. additional volume control is available at other locations within each of the supported signal paths. for more information about the line output mixing options, refer to the ?analogue output signal path? section. typical applications for the line outputs (single-ended or differential) are: ? handset or headset microphone output to external voice codec ? stereo line output ? output to external speaker driver(s) to support additional loudspeakers when single-ended mode is selected for either lineout1 or lineout2, a buffered vmid must be enabled as a reference for the outputs. this is enabled by setting the lineout_vmid_buf_ena bit as defined in table 76. register address bit label default description r56 (0038h) antipop (1) 7 lineout_vmid_buf_e na 0 enables vmid reference for line outputs in single-ended mode 0 = disabled 1 = enabled table 76 lineout vmid buffer for single-ended operation
WM8994 production data w pd, april 2012, rev 4.4 142 some example line output configurations are listed and illustrated below. ? differential line output from mic/line input on in1l pga ? differential line output from mic/line input on in1r pga ? stereo differential line output from output mixers mixoutl and mixoutr ? stereo single-ended line output from output mixer to either lineout1 or lineout2 ? mono single-ended line output from output mixer lineout1n_mute=0, lineout1p_mute=0 lineout2n_mute=0, lineout2p_mute=0 lineout1_mode=0 lineout2_mode=0 in1l_to_lineout1p=1 in1r_to_lineout2p=1 lineout1n lineout1p + lineout1nmix lineout1pmix mixoutlvol mixoutrvol min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db 0db or -6db 0db or -6db lineout2n lineout2p + lineout2nmix lineout2pmix 0db or -6db 0db or -6db + + mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutlvol mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutrvol in1l in1r in1l in1r ground loop noise rejection ground loop noise rejection ground loop noise rejection ground loop noise rejection lineout1n_mute=0, lineout1p_mute=0 lineout2n_mute=0, lineout2p_mute=0 lineout1_mode=0 lineout2_mode=0 in1r_to_lineout1p=1 in1l_to_lineout2p=1 figure 37 differential line out from input pga in1l (to lineout1) and in1r (to lineout2) figure 38 differential line out from input pga in1r (to lineout1) and in1l (to lineout2)
production data WM8994 w pd, april 2012, rev 4.4 143 lineout1n_mute=0, lineout1p_mute=0 lineout2n_mute=0, lineout2p_mute=0 lineout1_mode=0 lineout2_mode=0 mixoutl_to_lineout1p=1 mixoutr_to_lineout2p=1 lineout1n lineout1p + lineout1nmix lineout1pmix mixoutlvol mixoutrvol min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db 0db or -6db 0db or -6db lineout2n lineout2p + lineout2nmix lineout2pmix 0db or -6db 0db or -6db + + mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutlvol mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutrvol in1l in1r in1l in1r ground loop noise rejection ground loop noise rejection ground loop noise rejection ground loop noise rejection lineout1n_mute=0, lineout1p_mute=0 lineout2n_mute=0, lineout2p_mute=0 lineout1_mode=1 mixoutl_to_lineout1p=1 mixoutr_to_lineout1n=1 lineout_vmid_buf_ena=1 figure 39 stereo differential line out from mixoutl and mixoutr figure 40 stereo single-ended line out from mixoutl and mixoutr to lineout1 lineout1n lineout1p + lineout1nmix lineout1pmix mixoutlvol mixoutrvol min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db 0db or -6db 0db or -6db lineout2n lineout2p + lineout2nmix lineout2pmix 0db or -6db 0db or -6db + + mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutlvol mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutrvol in1l in1r in1l in1r ground loop noise rejection ground loop noise rejection ground loop noise rejection ground loop noise rejection lineout1n_mute=0, lineout1p_mute=0 lineout2n_mute=0, lineout2p_mute=0 lineout1_mode=1 mixoutl_to_lineout2n=1 mixoutr_to_lineout2p=1 lineout_vmid_buf_ena=1 lineout1n lineout1p + lineout1nmix lineout1pmix mixoutlvol mixoutrvol min = -57db max = +6db step = 1db min = -57db max = +6db step = 1db 0db or -6db 0db or -6db lineout2n lineout2p + lineout2nmix lineout2pmix 0db or -6db 0db or -6db + + mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutlvol mixoutlvol in1l in1r mixoutrvol in1r in1l mixoutrvol in1l in1r in1l in1r ground loop noise rejection ground loop noise rejection ground loop noise rejection ground loop noise rejection lineout1n_mute=0, lineout1p_mute=0 lineout2n_mute=0, lineout2p_mute=0 lineout1_mode=1 lineout2_mode=1 mixoutl_to_lineout1n=1 and/or mixoutl_to_lineout1p=1 mixoutr_to_lineout2n=1 and/or mixoutr_to_lineout2p=1 lineout_vmid_buf_ena=1 figure 41 stereo single-ended line out from mixoutl and mixoutr to lineout2 figure 42 mono line out to lineout1n, lineout1p, lineout2n, lineout2p
WM8994 production data w pd, april 2012, rev 4.4 144 the line outputs incorporate a common mode, or ground loop, feedback path which provides rejection of system-related ground noise. the return path, via lineoutfb, is enabled separately for lineout1 and lineout2 using the lineout1_fb and lineout2_fb bits as defined in table 77. ground loop feedback is a benefit to single-ended line outputs only; it is not applicable to differential outputs, which already inherently offer common mode noise rejection. register address bit label default description r55 (0037h) additional control 7 lineout1_fb 0 enable ground loop noise feedback on lineout1 0 = disabled 1 = enabled 6 lineout2_fb 0 enable ground loop noise feedback on lineout2 0 = disabled 1 = enabled table 77 line output ground loop feedback enable
production data WM8994 w pd, april 2012, rev 4.4 145 general purpose input/output the WM8994 provides a number of gpio functi ons to enable interfacing and detection of external hardware and to provide logic outputs to other devices. the input functions can be polled directly or can be used to generate an interrupt (irq) event. the gpio and interrupt circuits support the following functions: ? alternate interface functions (aif2, aif3) ? button detect (gpio input) ? logic ?1? and logic ?0? output (gpio output) ? sdout (4-wire spi control interface data) ? interrupt (irq) status output ? over-temperature detection ? accessory detection (micbias current detection) ? frequency locked loop (fll) lock status output ? sample rate conversion (src) lock status output ? dynamic range control (drc) signal activity detection ? control write sequencer status output ? digital core fifo error status output ? clock output (sysclk divided by opclk_div) ? frequency locked loop (fll) clock output gpio control for each gpio, the selected function is determined by the gpn_fn field, where n identifies the gpio pin (1 to 11). the pin direction, set by gpn_dir, must be set according to function selected by gpn_fn. the alternate audio interfaces aif2 and aif3 are both supported using gpio pins; the applicable pin functions are selected by setting the corresponding gpn_fn register to 00h. see table 81 for the definition of which aif function is available on each gpio pin. see ?digital audio interface control? for details of aif2 and aif3. note that the gpio2 pin supports functions mc lk2 and button detect / logic level input only. accordingly, gp2_dir should be set to ?1? in all applications. when a pin is configured as a gpio input (gpn_dir = 1), the logic level at the pin can be read from the respective gpn_lvl bit. note that gpn_lvl is not affected by the gpn_pol bit. a de-bounce circuit can be enabled on any gpio input, to avoid false event triggers. this is enabled on each pin by setting the respective gpn_db bit. note that toclk must be enabled when this input de-bouncing is required. when a pin is configured as a logic level output (gpn_dir = 0, gpn_fn = 01h), its level can be set to logic 0 or logic 1 using the gpn_lvl field. when a pin is configured as an output (gpn_dir = 0), the polarity can be inverted using the gpn_pol bit. when gpn_pol = 1, then the selected output function is inverted. in the case of logic level output (gpn_fn = 01h), the external output will be the opposite logic level to gpn_lvl when gpn_pol = 1. a gpio output can be either cmos driven or open drain. this is selected on each pin using the respective gpn_op_cfg bit.
WM8994 production data w pd, april 2012, rev 4.4 146 internal pull-up and pull-down resistors may be enabled using the gpn_pu and gpn_pd fields; this allows greater flexibility to interface with different signals from other devices. (note that if gpn_pu and gpn_pd are both set for any gpio pin, then the pull-up and pull-down will be disabled.) each of the gpio pins is an input to the interrupt control circuit and can be used to trigger an interrupt event. an interrupt event is triggered on the rising and falling edge of the gpio input. the associated interrupt bit is latched once set; it can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. the register fields that control the gpio pins are described in table 78, table 79 and table 80. register address bit label default description r1792 (0700h) gpio1 15 gp1_dir 1 gpio1 pin direction 0 = output 1 = input 14 gp1_pu 0 gpio1 pull-up enable 0 = disabled 1 = enabled 13 gp1_pd 0 gpio1 pull-down enable 0 = disabled 1 = enabled 10 gp1_pol 0 gpio1 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp1_op_cfg 0 gpio1 output configuration 0 = cmos 1 = open drain 8 gp1_db 1 gpio1 input de-bounce 0 = disabled 1 = enabled 6 gp1_lvl 0 gpio1 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp1_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp1_fn [4:0] 0000 gpio1 pin function (see table 81 for details) table 78 gpio1 control
production data WM8994 w pd, april 2012, rev 4.4 147 register address bit label default description r1793 (0701h) gpio2 15 gp2_dir 1 gpio2 pin direction 0 = reserved 1 = input 14 gp2_pu 0 gpio2 pull-up enable 0 = disabled 1 = enabled 13 gp2_pd 1 gpio2 pull-down enable 0 = disabled 1 = enabled 10 gp2_pol 0 gpio2 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 8 gp2_db 1 gpio2 input de-bounce 0 = disabled 1 = enabled 6 gp2_lvl 0 gpio2 level. read from this bit to read gpio input level. 4:0 gp2_fn [4:0] 0001 gpio2 pin function (see table 81 for details) table 79 gpio2 control register address bit label default description r1794 (0701h) gpio3 to r1802 (070ah) gpio11 15 gpn_dir 1 gpion pin direction 0 = output 1 = input 14 gpn_pu 0 gpion pull-up enable 0 = disabled 1 = enabled 13 gpn_pd 1 gpion pull-down enable 0 = disabled 1 = enabled 10 gpn_pol 0 gpion polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gpn_op_cfg 0 gpion output configuration 0 = cmos 1 = open drain 8 gpn_db 1 gpion input de-bounce 0 = disabled 1 = enabled 6 gpn_lvl 0 gpion level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gpn_pol is set, the register contains the opposite logic level to the external pin. 4:0 gpn_fn [4:0] 0001 gpion pin function (see table 81 for details) note: n is a number between 3 and 11 that identifies the individual gpio. table 80 gpio3 to gpio11 control
WM8994 production data w pd, april 2012, rev 4.4 148 gpio function select the available gpio functions are described in table 81. the function of each gpio is set using the gpn_fn register, where n identifies the gpio pin (1 to 11). note that the respective gpn_dir must also be set according to whether the function is an input or output. note that gpio2 supports functions mclk 2 and button detect / logic level input only. gpn_fn description comments 00h gpio1 - adclrclk1 gpio2 - mclk2 gpio3 - bclk2 gpio4 - lrclk2 gpio5 - dacdat2 gpio6 - adclrclk2 gpio7 - adcdat2 gpio8 - dacdat3 gpio9 - adcdat3 gpio10 - lrclk3 gpio11 - bclk3 alternate audio interface connections. 01h button detect input / logic level output gpn_dir = 0: gpio pin logic level is set by gpn_lvl. gpn_dir = 1: button detect or logic level input. note that gpio2 can only be configured as an input. 02h sdout spi control interface data output 03h irq interrupt (irq) output 0 = irq not asserted 1 = irq asserted 04h temperature (shutdown) status output indicates temperature shutdown sensor status 0 = temperature is below shutdown level 1 = temperature is above shutdown level 05h micbias1 current detect indicates micbias1 current detection status 0 = current detect threshold not exceeded 1 = current detect threshold exceeded 06h micbias1 short circuit detect indicates micbias1 short circuit detection status 0 = short circuit threshold not exceeded 1 = short circuit threshold exceeded 07h micbias2 current detect indicates micbias2 current detection status 0 = current detect threshold not exceeded 1 = current detect threshold exceeded 08h micbias2 short circuit detect indicates micbias2 short circuit detection status 0 = short circuit threshold not exceeded 1 = short circuit threshold exceeded 09h fll1 lock indicates fll1 lock status 0 = not locked 1 = locked 0ah fll2 lock indicates fll2 lock status 0 = not locked 1 = locked 0bh src1 lock indicates src1 lock status 0 = not locked 1 = locked 0ch src2 lock indicates src2 lock status 0 = not locked 1 = locked
production data WM8994 w pd, april 2012, rev 4.4 149 gpn_fn description comments 0dh aif1 drc1 signal detect indicates aif1 drc1 signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 0eh aif1 drc2 signal detect indicates aif1 drc2 signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 0fh aif2 drc signal detect indicates aif2 drc signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 10h write sequencer status indicates write sequencer status 0 = write sequencer idle 1 = write sequence busy 11h fifo error indicates a digital core fifo error condition 0 = normal operation 1 = fifo error 12h clock output opclk gpio clock derived from sysclk 13h temperature (warning) status output indicates temperature warning sensor status 0 = temperature is below warning level 1 = temperature is above warning level 14h dc servo done indicates dc servo status on hpout1l and hpout1r 0 = dc servo not complete 1 = dc servo complete 15h fll1 clock output clock output from fll1 16h fll2 clock output clock output from fll2 17h to 1fh reserved table 81 gpio function select button detect (gpio input) button detect functionality can be selected on any gpio pin by setting the respective gpio registers as described in ?gpio control?. the same functionality can be used to support a jack detect input function. it is recommended to enable the gpio input de-bounce feature when using gpios as button input or jack detect input. the gpn_lvl fields may be read to determine the logic levels on a gpio input, after the selectable de-bounce controls. note that gpn_lvl is not affected by the gpn_pol bit. the de-bounced gpio signals are also inputs to the interrupt control circuit. an interrupt event is triggered on the rising and falling edge of the gpio input. the associated interrupt bits are latched once set; it can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. logic ?1? and logic ?0? output (gpio output) the WM8994 can be programmed to drive a logic high or logic low level on any gpio pin by selecting the ?gpio output? function as described in ?gpio control?. the output logic level is selected using the respective gpn_lvl bit. note that the polarity of the gpio output can be inverted using the gpn_pol registers. if gpn_pol = 1, then the external output will be the opposite logic level to gpn_lvl.
WM8994 production data w pd, april 2012, rev 4.4 150 sdout (4-wire spi control interface data) the WM8994 can support a number of different control interface protocols. in 4-wire spi mode, a gpio pin must be configured as sdout. see ?control interface? for further details. a gpio pin configured as sdout can be configured as cmos or wired ?or? using the spi_cfg register. note that the gpn_op_cfg and gpn_pol registers have no effect on a gpio pin that is configured as sdout. interrupt (irq) status output the WM8994 has an interrupt controller which can be used to indicate when any selected interrupt events occur. an interrupt can be generated by any of the events described throughout the gpio function definition above. individual interrupts may be masked in order to configure the interrupt as required. see ?interrupts? for further details. the interrupt (irq) status may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. over-temperature detection the WM8994 incorporates a temperature sensor which detects when the device temperature is within normal limits or if the device is approaching a hazardous temperature condition. the temperature status may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. any gpio pin can be used to indicate either a warning temperature event or the shutdown temperature event. de-bounce can be applied to the applicable signal using the register bits described in table 82. the warning temperature and shutdown temperature status are inputs to the interrupt control circuit, after the selectable de-bounce. an interrupt event may be triggered on the rising and falling edges of these signals. the associated interrupt bit is latched once set; it can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. note that the temperature sensor can be configured to automatically disable the audio outputs of the WM8994 (see ?thermal shutdown?). in some applications, it may be preferable to manage the temperature sensor event through gpio or interrupt functions, allowing a host processor to implement a controlled system response to an over-temperature condition. the temperature sensor must be enabled by setting the tshut_ena register bit. when the tshut_opdis is also set, then a device over -temperature condition will cause the speaker outputs (spkoutl and spkoutr) of the WM8994 to be disabled. register address bit label default description r2 (0002h) power management (2) 14 tshut_en a 1 thermal sensor enable 0 = disabled 1 = enabled 13 tshut_op dis 1 thermal shutdown control (causes audio outputs to be disabled if an overtemperature occurs. the thermal sensor must also be enabled.) 0 = disabled 1 = enabled r1864 (0748h) irq debounce 0 temp_war n_db 0 thermal warning de-bounce 0 = disabled 1 = enabled 0 temp_shu t_db 0 thermal shutdown de-bounce 0 = disabled 1 = enabled table 82 temperature sensor enable and gpio/interrupt control
production data WM8994 w pd, april 2012, rev 4.4 151 accessory detection (micbias current detection) current detection is provided on each of the microphone bias sources micbias1 and micbias2. these can be configured to detect when an external accessory (such as a microphone) has been connected. the output voltage of each of the microphone bias sources is selectable. two current detection threshold levels can be set; these thr esholds are applicable to both microphone bias sources. the logic signals from the current detect circuits may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. de-bounce can be applied to these signals using the register bits described in table 83. the current detection circuits are inputs to the interrupt control circuit, after the selectable de-bounce. an interrupt event is triggered on the rising and falling edges of the current detect signals. the associated interrupt bits are latched once set; they can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. register address bit label default description r1 (0001h) power management (1) 5 micb2_ena 0 microphone bias 2 enable 0 = disabled 1 = enabled 4 micb1_ena 0 microphone bias 1 enable 0 = disabled 1 = enabled r58 (003ah) micbias 7:6 micd_sct hr [1:0] 00 micbias short circuit current threshold 00 = 300ua 01 = 600ua 10 = 1200ua 11 = 2400ua these values are for avdd1=3.0v and scale proportionally with avdd1. 5:3 micd_thr [2:0] 000 micbias current detect threshold 00x = 150ua 01x = 300ua 10x = 600ua 11x = 1200ua these values are for avdd1=3.0v and scale proportionally with avdd1. 2 micd_ena 0 micbias current detect / short circuit threshold enable 0 = disabled 1 = enabled 1 micb2_lvl 0 microphone bias 2 voltage control 0 = 0.9 * avdd1 1 = 0.65 * avdd1 0 micb1_lvl 0 microphone bias 1 voltage control 0 = 0.9 * avdd1 1 = 0.65 * avdd1 r1864 (0748h) irq debounce 4 mic2_shrt _db 1 micbias2 short circuit de-bounce 0 = disabled 1 = enabled 3 mic2_det_ db 1 micbias2 current detect de-bounce 0 = disabled 1 = enabled 2 mic1_shrt _db 1 micbias1 short circuit de-bounce 0 = disabled 1 = enabled 1 mic1_det_ db 1 micbias1 current detect de-bounce 0 = disabled 1 = enabled table 83 micbias enable and gpio/interrupt control
WM8994 production data w pd, april 2012, rev 4.4 152 frequency locked loop (fll) lock status output the WM8994 maintains a flag indicating the lock status of each of flls, which may be used to control other events if required. see ?clocki ng and sample rates? for more details of the fll. the fll lock signals may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. the fll lock signals are inputs to the interrupt control circuit. an interrupt event is triggered on the rising and falling edges of the fll lock signals. the associated interrupt bits are latched once set; they can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. sample rate converter (src) lock status output the WM8994 maintains a flag indicating the lock status of each of sample rate converters, which may be used to control other events if required. see ?sample rate conversion? for more details of the sample rate converters. the src lock signals may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. the src lock signals are inputs to the interrupt control circuit, after the selectable de-bounce. an interrupt event is triggered on the rising and falling edges of the src lock signals. the associated interrupt bits are latched once set; they can be poll ed at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. dynamic range control (drc) signal activity detection signal activity detection is provided on each of the dynamic range controllers (drcs). these may be configured to indicate when a signal is present on the respective signal path. the signal activity status signals may be used to control other events if required. see ?digital core architecture? for more details of the drcs and the available digital signal paths. when a drc is enabled, as described in ?dynamic range control (drc)?, then signal activity detection can be enabled by setting the respective [drc] _sig_det register bit. the applicable threshold can be defined either as a peak level (crest factor) or an rms level, depending on the [drc] _sig_det_mode register bit. when peak level is selected, the threshold is determined by [drc] _sig_det_pk, which defines the applicable crest factor (peak to rms ratio) threshold. if rms level is selected, then the threshold is set using [drc] _sig_det_rms. these register fields are set independently for each of the three dynamic r ange controllers, as described in table 84. the drc signal detect signals may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. the drc signal detect signals are inputs to the inte rrupt control circuit. an interrupt event is triggered on the rising edge of the drc signal detec t signals. the associated interrupt bits are latched once set; they can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. register address bit label default description r1088 (0440h) aif1 drc1 (1) 15:11 aif1drc1_sig_ det_rms [4:0] 00000 aif1 drc1 signal detect rms threshold. this is the rms signal level for signal detect to be indicated when aif1drc1_sig_det_mode=1. 00000 = -30db 00001 = -31.5db ?. (1.5db steps) 11110 = -75db 11111 = -76.5db
production data WM8994 w pd, april 2012, rev 4.4 153 register address bit label default description 10:9 aif1drc1_sig_ det_pk [1:0] 00 aif1 drc1 signal detect peak threshold. this is the peak/rms ratio, or crest factor, level for signal detect to be indicated when aif1drc1_sig_det_mode=0. 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7 aif1drc1_sig_ det_mode 1 aif1 drc1 signal detect mode 0 = peak threshold mode 1 = rms threshold mode 6 aif1drc1_sig_ det 0 aif1 drc1 signal detect enable 0 = disabled 1 = enabled r1104 (0450h) aif1 drc2 (1) 15:11 aif1drc2_sig_ det_rms [4:0] 00000 aif1 drc2 signal detect rms threshold. this is the rms signal level for signal detect to be indicated when aif1drc2_sig_det_mode=1. 00000 = -30db 00001 = -31.5db ?. (1.5db steps) 11110 = -75db 11111 = -76.5db 10:9 aif1drc2_sig_ det_pk [1:0] 00 aif1 drc2 signal detect peak threshold. this is the peak/rms ratio, or crest factor, level for signal detect to be indicated when aif1drc2_sig_det_mode=0. 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7 aif1drc2_sig_ det_mode 1 aif1 drc2 signal detect mode 0 = peak threshold mode 1 = rms threshold mode 6 aif1drc2_sig_ det 0 aif1 drc2 signal detect enable 0 = disabled 1 = enabled r1344 (0540h) aif2 drc (1) 15:11 aif2drc_sig_d et_rms [4:0] 00000 aif2 drc signal detect rms threshold. this is the rms signal level for signal detect to be indicated when aif2drc_sig_det_mode=1. 00000 = -30db 00001 = -31.5db ?. (1.5db steps) 11110 = -75db 11111 = -76.5db
WM8994 production data w pd, april 2012, rev 4.4 154 register address bit label default description 10:9 aif2drc_sig_d et_pk [1:0] 00 aif2 drc signal detect peak threshold. this is the peak/rms ratio, or crest factor, level for signal detect to be indicated when aif2drc_sig_det_mode=0. 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7 aif2drc_sig_d et_mode 1 aif2 drc signal detect mode 0 = peak threshold mode 1 = rms threshold mode 6 aif2drc_sig_d et 0 aif2 drc signal detect enable 0 = disabled 1 = enabled table 84 drc signal activity detect gpio/interrupt control control write sequencer status detection the WM8994 control write sequencer (wseq) can be used to execute a sequence of register write operations in response to a simple trigger event. when the control write sequencer is executing a sequence, normal access to the register map via the control interface is restricted. see ?control write sequencer? for details of the control write sequencer. the WM8994 generates a signal indicating the status of the control write sequencer, in order to signal to the host processor whether the control interface functionality is restricted due to an ongoing control sequence. the wseq_done flag i ndicates that the sequencer has completed the commanded sequence. the write sequencer status may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. the write sequencer status is an input to the interrupt control circuit. an interrupt event is triggered on completion of a control sequence. the associated interrupt bit is latched once set; it can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling. digital core fifo error status detection the WM8994 monitors the digital core for error condi tions which may occur if a clock rate mismatch is detected. under these conditions, the digital audio may become corrupted. the most likely cause of a digital core fifo error condition is an incorrect system clocking configuration. see ?clocking and sample rates? for the WM8994 system clocking requirements. the digital core fifo error function is provided in order that the system configuration can be verified during product development. the fifo error signal may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. the fifo error signal is an input to the interrupt control circuit. an interrupt event is triggered on the rising edge of the fifo error signal. the associated interrupt bit is latched once set; it can be polled at any time or used to control the irq signal. see ?interrupts? for more details of the interrupt event handling.
production data WM8994 w pd, april 2012, rev 4.4 155 opclk clock output a clock output (opclk) derived from sysclk may be output on any gpio pin by setting the respective gpio registers as described in ?gpio control?. this clock is enabled by register bit opclk_ena, and its frequency is controlled by opclk_div. see ?clocking and sample rates? for more details of the system clock (sysclk). register address bit label default description r2 (0002h) power management (2) 11 opclk_en a 0 gpio clock output (opclk) enable 0 = disabled 1 = enabled r521 (0209h) clocking 1 2:0 opclk_div 000 gpio output clock (opclk) divider 000 = sysclk 001 = sysclk / 2 010 = sysclk / 3 011 = sysclk / 4 100 = sysclk / 6 101 = sysclk / 8 110 = sysclk / 12 111 = sysclk / 16 table 85 opclk control fll clock output the fll clock outputs may be output directly on any gpio pin by setting the respective gpio registers as described in ?gpio control?. see ?clocking and sample rates? for more details of the WM8994 system clocking and for details of how to enable and configure the frequency locked loops.
WM8994 production data w pd, april 2012, rev 4.4 156 interrupts the interrupt controller has multiple inputs. these include the gpio input pins, the micbias current detection circuits, fll lock circuits, src loc k circuit, microphone activity detection, over- temperature indication, digital fifo error detection and the write sequencer status flag. any combination of these inputs can be used to trigger an interrupt request (irq) event. there is an interrupt register field associated with each of the interrupt inputs. these fields are asserted whenever a logic edge is detected on the respective input. some inputs are triggered on rising edges only; some are triggered on both edges, as noted in table 86. the interrupt register fields are held in registers r1840 and r1841. the interrupt flags can be polled at any time from these registers, or else in response to the interrupt request (irq) output being signalled via a gpio pin. all of the interrupts are edge-triggered, as noted above. many of these are triggered on both the rising and falling edges and, therefore, the interrupt registers cannot indicate which edge has been detected. the ?raw status? fields in register r 1842 provide readback of the current value of selected inputs to the interrupt controller. note that the logic levels of any gpio inputs can be read using the gpn_lvl registers, as described in table 78 to table 80. individual mask bits can select or deselect differ ent functions from the interrupt controller. these are listed within the interrupt status mask registers, as described in table 86. note that the interrupt register fields remain valid, even when mask ed, but the masked interrupts will not cause the interrupt request (irq) output to be asserted. the interrupt request (irq) output represents the logi cal ?or? of all the unmasked interrupts. the interrupt register fields are latching fields and, once they are set, they are not reset until a ?1? is written to the respective register bit(s). the interrupt request (irq) output is not reset until each of the unmasked interrupts has been reset. de-bouncing of the gpio inputs can be enabled using the r egister bits described in table 78 to table 80. de-bouncing is also available on the temperature and micbias detection inputs to the interrupt controller, in order to avoid false detections - see table 86 for the associated registers. the interrupt request (irq) output can be globally masked by setting the im_irq register. under default conditions, the interrupt request (irq) is not masked. the interrupt request (irq) flag may be output on a gpio pin - see ?general purpose input/output?. the WM8994 interrupt controller circuit is illustrated in figure 43. (note that not all interrupt inputs are shown.) the associated control fields are described in table 86. figure 43 interrupt controller
production data WM8994 w pd, april 2012, rev 4.4 157 register address bit label default description r1840 (0730h) interrupt status 1 10 gp11_eint 0 gpio11 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 9 gp10_eint 0 gpio10 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 8 gp9_eint 0 gpio9 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 7 gp8_eint 0 gpio8 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 6 gp7_eint 0 gpio7 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 5 gp6_eint 0 gpio6 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 4 gp5_eint 0 gpio5 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 3 gp4_eint 0 gpio4 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 2 gp3_eint 0 gpio3 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 1 gp2_eint 0 gpio2 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 0 gp1_eint 0 gpio1 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. r1841 (0731h) interrupt status 2 15 temp_war n_eint 0 temperature warning interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 14 dcs_done _eint 0 dc servo interrupt (rising edge triggered) note: cleared when a ?1? is written. 13 wseq_do ne_eint 0 write sequencer interrupt (rising edge triggered) note: cleared when a ?1? is written. 12 fifos_err _eint 0 digital core fifo error interrupt (rising edge triggered) note: cleared when a ?1? is written. 11 aif2drc_si g_det_ein t 0 aif2 drc activity detect interrupt (rising edge triggered) note: cleared when a ?1? is written. 10 aif1drc2_ sig_det_ei nt 0 aif1 drc2 (timeslot 1) activity detect interrupt (rising edge triggered) note: cleared when a ?1? is written.
WM8994 production data w pd, april 2012, rev 4.4 158 register address bit label default description 9 aif1drc1_ sig_det_ei nt 0 aif1 drc1 (timeslot 0) activity detect interrupt (rising edge triggered) note: cleared when a ?1? is written. 8 src2_loc k_eint 0 src2 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 7 src1_loc k_eint 0 src1 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 6 fll2_lock _eint 0 fll2 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 5 fll1_lock _eint 0 fll1 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 4 mic2_shrt _eint 0 micbias2 short circuit interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 3 mic2_det_ eint 0 micbias2 current detect interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 2 mic1_shrt _eint 0 micbias1 short circuit interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 1 mic1_det_ eint 0 micbias1 current detect interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 0 temp_shu t_eint 0 temperature shutdown interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. r1842 (0732h) interrupt raw status 2 15 temp_war n_sts 0 temperature warning status 0 = temperature is below warning level 1 = temperature is above warning level 14 dcs_done _sts 0 dc servo status 0 = dc servo not complete 1 = dc servo complete 13 wseq_do ne_sts 0 write sequencer status 0 = sequencer busy (sequence in progress) 1 = sequencer idle 12 fifos_err _sts 0 digital core fifo error status 0 = normal operation 1 = fifo error 11 aif2drc_si g_det_st s 0 aif2 drc signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 10 aif1drc2_ sig_det_s ts 0 aif1 drc2 (timeslot 1) signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 9 aif1drc1_ sig_det_s ts 0 aif1 drc1 (timeslot 0) signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded
production data WM8994 w pd, april 2012, rev 4.4 159 register address bit label default description 8 src2_loc k_sts 0 src2 lock status 0 = not locked 1 = locked 7 src1_loc k_sts 0 src1 lock status 0 = not locked 1 = locked 6 fll2_lock _sts 0 fll2 lock status 0 = not locked 1 = locked 5 fll1_lock _sts 0 fll1 lock status 0 = not locked 1 = locked 4 mic2_shrt _sts 0 micbias2 short circuit status 0 = short circuit threshold not exceeded 1 = short circuit threshold exceeded 3 mic2_det_ sts 0 micbias2 current detect status 0 = current detect threshold not exceeded 1 = current detect threshold exceeded 2 mic1_shrt _sts 0 micbias1 short circuit status 0 = short circuit threshold not exceeded 1 = short circuit threshold exceeded 1 mic1_det_ sts 0 micbias1 current detect status 0 = current detect threshold not exceeded 1 = current detect threshold exceeded 0 temp_shu t_sts 0 temperature shutdown status 0 = temperature is below shutdown level 1 = temperature is above shutdown level r1848 (0738h) interrupt status 1 mask 10 im_gp11_ei nt 1 gpio11 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 9 im_gp10_ei nt 1 gpio10 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 8 im_gp9_ei nt 1 gpio9 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 7 im_gp8_ei nt 1 gpio8 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 6 im_gp7_ei nt 1 gpio7 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 5 im_gp6_ei nt 1 gpio6 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 4 im_gp5_ei nt 1 gpio5 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 3 im_gp4_ei nt 1 gpio4 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt.
WM8994 production data w pd, april 2012, rev 4.4 160 register address bit label default description 2 im_gp3_ei nt 1 gpio3 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 1 im_gp2_ei nt 1 gpio2 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 0 im_gp1_ei nt 1 gpio1 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. r1849 (0739h) interrupt status 2 mask 15 im_temp_ warn_ein t 1 temperature warning interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 14 im_dcs_d one_eint 1 dc servo interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 13 im_wseq_ done_eint 1 write sequencer interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 12 im_fifos_ err_eint 1 digital core fifo error interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 11 im_aif2dr c_sig_det _eint 1 aif2 drc activity detect interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 10 im_aif1dr c2_sig_de t_eint 1 aif1 drc2 (timeslot 1) activity detect interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 9 im_aif1dr c1_sig_de t_eint 1 aif1 drc1 (timeslot 0) activity detect interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 8 im_src2_l ock_eint 1 src2 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 7 im_src1_l ock_eint 1 src1 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 6 im_fll2_l ock_eint 1 fll2 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 5 im_fll1_l ock_eint 1 fll1 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 4 im_mic2_s hrt_eint 1 micbias2 short circuit interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 3 im_mic2_d et_eint 1 micbias2 current interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 2 im_mic1_s hrt_eint 1 micbias1 short circuit interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt.
production data WM8994 w pd, april 2012, rev 4.4 161 register address bit label default description 1 im_mic1_d et_eint 1 micbias1 current interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 0 im_temp_s hut_eint 1 temperature shutdown interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. r1856 (0740h) interrupt control 0 im_irq 0 irq output mask. 0 = do not mask interrupt. 1 = mask interrupt. r1864 (0748h) irq debounce 5 temp_war n_db 1 temperature warning de-bounce 0 = disabled 1 = enabled 4 mic2_shrt _db 1 micbias2 short circuit de-bounce 0 = disabled 1 = enabled 3 mic2_det_ db 1 micbias2 current detect de-bounce 0 = disabled 1 = enabled 2 mic1_shrt _db 1 micbias1 short circuit de-bounce 0 = disabled 1 = enabled 1 mic1_det_ db 1 micbias1 current detect de-bounce 0 = disabled 1 = enabled 0 temp_shu t_db 1 temperature shutdown de-bounce 0 = disabled 1 = enabled table 86 interrupt configuration
WM8994 production data w pd, april 2012, rev 4.4 162 digital audio interface the WM8994 provides digital audio interfaces for inputting dac data and outputting adc or digital microphone data. flexible routing options also allow digital audio to be switched or mixed between interfaces without involving any dac or adc. the WM8994 provides two full audio interfaces, aif1 and aif2. a third interface, aif3, is partially supported, using multiplexers to re-configure alternate connections to aif1 or aif2. the digital audio interfaces provide flexible connecti vity with multiple processors (eg. applications processor, baseband processor and wireless transceiver). a typical configuration is illustrated in figure 44. figure 44 typical aif connections in the general case, the digital audio interface uses four pins: ? adcdat: adc data output ? dacdat: dac data input ? lrclk: left/right data alignment clock ? bclk: bit clock, for synchronisation in master interface mode, the clock signals bclk and lrclk are outputs from the WM8994. in slave mode, these signals are inputs, as illustrated below. as an option, a gpio pin can be configured as the left/right clock for the adc. in this case, the lrclk pin is dedicated to the dac, allowi ng the adc and dac to be clocked independently. four different audio data formats are supported each digital audio interface: ? left justified ? right justified ? i 2 s ? dsp mode all four of these modes are msb first. they are described in the following sections. refer to the ?signal timing requirements? section for timing information.
production data WM8994 w pd, april 2012, rev 4.4 163 time division multiplexing (tdm) is available in all four data format modes. on aif1, the WM8994 can transmit and receive data on two stereo pairs of timeslots simultaneously. on aif2, the applicable timeslot pair is selectable using register control bits. two variants of dsp mode are supported - ?mode a? and ?mode b?. mono operation can be selected on either audio interface in both dsp modes. pcm operation is supported using the dsp mode. master and slave mode operation the WM8994 digital audio interfaces can operate as a master or slave as shown in figure 45 and figure 46. the associated control bits are described in ?digital audio interface control?. figure 45 master mode figure 46 slave mode operation with tdm time division multiplexing (tdm) allows multiple devices to transfer data simultaneously on the same bus. the WM8994 adcs and dacs support tdm in master and slave modes for all data formats and word lengths. tdm is enabled and configured using register bits defined in the ?digital audio interface control? section. WM8994 processor WM8994 or similar codec adcdat adclrc dacdat bclk adcdat adclrc dacdat bclk WM8994 processor WM8994 or similar codec adcdat adclrc dacdat bclk adcdat adclrc dacdat bclk figure 47 tdm with WM8994 as master figure 48 tdm with other codec as master
WM8994 production data w pd, april 2012, rev 4.4 164 WM8994 processor WM8994 or similar codec adcdat adclrc dacdat bclk adcdat adclrc dacdat bclk figure 49 tdm with processor as master note: the WM8994 is a 24-bit device. if the user operates the WM8994 in 32-bit mode then the 8 lsbs will be ignored on the receiving side and not driven on the transmitting side. it is therefore recommended to add a pull-down resistor if necessary to the dacdat line and the adcdat line in tdm mode. audio data formats (normal mode) the audio data modes supported by the WM8994 are described below. note that the polarity of the bclk and lrclk signals can be inverted if required; the following descriptions all assume the default, non-inverted polarity of these signals. in right justified mode, the lsb is available on the last rising edge of bclk before a lrclk transition. all other bits are transmitted befor e (msb first). depending on word length, bclk frequency and sample rate, there may be unused bclk cycles after each lrclk transition. figure 50 right justified audio interface (assuming n-bit word length) in left justified mode, the msb is available on the first rising edge of bclk following a lrclk transition. the other bits up to the lsb are then transmitted in order. depending on word length, bclk frequency and sample rate, there may be unused bclk cycles before each lrclk transition.
production data WM8994 w pd, april 2012, rev 4.4 165 figure 51 left justified audio interface (assuming n-bit word length) in i 2 s mode, the msb is available on the second ri sing edge of bclk following a lrclk transition. the other bits up to the lsb are then transmitted in order. depending on word length, bclk frequency and sample rate, there may be unused bclk cycles between the lsb of one sample and the msb of the next. n n-1 n-2 3 2 1 n n-1 n-2 3 2 1 left channel right channel msb lsb input word length (wl) 1/fs lrclk bclk dacdat/ adcdat 1 bclk 1 bclk figure 52 i2s justified audio interface (assuming n-bit word length) in dsp mode, the left channel msb is available on either the 1 st (mode b) or 2 nd (mode a) rising edge of bclk (selectable by aif_lrclk_inv) fol lowing a rising edge of lrclk. right channel data immediately follows left channel data. depending on word length, bclk frequency and sample rate, there may be unused bclk cycles between the lsb of the right channel data and the next sample. in device master mode, the lrclk output will resemble the frame pulse shown in figure 53 and figure 54. in device slave mode, figure 55 and figure 56, it is possible to use any length of frame pulse less than 1/fs, providing the falling edge of the frame pulse occurs greater than one bclk period before the rising edge of the next frame pulse. figure 53 dsp mode audio interface (mode a, aif_lrclk_inv=0, master)
WM8994 production data w pd, april 2012, rev 4.4 166 n n-1 n-2 3 2 1 n n-1 n-2 3 2 1 left channel right channel msb lsb input word length (wl) 1/fs lrclk bclk dacdat/ adcdat figure 54 dsp mode audio interface (mode b, aif_lrclk_inv=1, master) figure 55 dsp mode audio interface (mode a, aif_lrclk_inv=0, slave) figure 56 dsp mode audio interface (mode b, aif_lrclk_inv=1, slave) mono mode operation is available in dsp interface mode. when mono mode is enabled, the audio data is transmitted or received starting on either the 1 st (mode b) or 2 nd (mode a) rising edge of bclk following a rising edge of lrclk. pcm operation is supported in dsp interface mode. WM8994 adc data that is output on the left channel will be read as mono pcm data by the receiving equipment. mono pcm data received by the WM8994 will be treated as left channel data. this data may be routed to the left/right dacs using the control fields described in the ?digital mixi ng? and ?digital audio interface control? sections.
production data WM8994 w pd, april 2012, rev 4.4 167 audio data formats (tdm mode) tdm is supported in master and slave modes. all audio interface data formats support time division multiplexing (tdm) for adc and dac data. when more than one pair of adc or dac data channels is enabled on aif1, the WM8994 will transmit and receive data in both slot 0 and slot 1. in the case of aif2, the adc or dat data can be transmitted or received in either timeslot; the required timeslot is selected using register control bits when tdm is enabled. when tdm is enabled, the adcdat pin will be tri-stated immediately before and immediately after data transmission, to allow another adc device to drive this signal line for the remainder of the sample period. note that it is important that two adc devices do not attempt to drive the data pin simultaneously. a short circuit may occur if the transmission time of the two adc devices overlap with each other. see ?audio interface timing? for details of the adcdat output relative to bclk signal. note that it is possible to ensure a gap exists between transmissions by setting the transmitted word length to a value higher than the actual length of the data. for example, if 32-bit word length is selected where only 24-bit data is available, then the WM8994 interface will tri-state after transmission of the 24-bit data, ensuring a gap after the WM8994 tdm slot. on aif1, tdm can be used to transmit or receive up to four signal paths. each enabled signal path is transmitted (on adcdat) or received (on dacdat) sequentially. if one or more of the signal paths is disabled, then the position of remaining data blocks within the lrclk frame may differ from those illustrated in figure 57 to figure 61, as the affected channel(s) will revert to the ?normal? (non-tdm) format. when the aif1adc_tdm register is set, then the adcdat1 output is tri-stated when not outputting data. on aif2, the tdm format is enabled by register control (aif2adc_tdm and aif2dac_tdm for the output and input paths respectively). when tdm is enabled on aif2, the data formats shown in figure 57 to figure 61 are always selected, and the WM8994 transmits or receives data in one of the two available timeslots; the adcdat2 output is tri-stated when not outputting data. in all cases, the bclk frequency must be high enough to allow data from the relevant time slots to be transferred. the relative timing of slot 0 and slot 1 depends upon the selected data format; the tdm timing for four input or output channels is shown in figure 57 to figure 61. figure 57 tdm in right-justified mode figure 58 tdm in left-justified mode
WM8994 production data w pd, april 2012, rev 4.4 168 figure 59 tdm in i 2 s mode figure 60 tdm in dsp mode a figure 61 tdm in dsp mode b
production data WM8994 w pd, april 2012, rev 4.4 169 digital audio interface control this section describes the configuration of the WM8994 digital audio interface paths. interfaces aif1 and aif2 can be configured as master or slave, or can be tri-stated. each input and output signal path can be independently enabled or disabled. aif output (digital record) and aif input (digital playback) paths can use a common left/right clock, or can use separate clocks for mixed sample rates. interfaces aif1 and aif2 each support flexible formats, word-length, tdm configuration, channel swapping and input path digital boost functions. 8-bit companding modes and digital loopback is also possible. a third interface, aif3, is partially supported, usi ng multiplexers to re-configure alternate connections to aif1 or aif2. note that aif3 operates in master mode only. aif1 - master / slave and tri-state control the digital audio interface aif1 can operate in master or slave modes, selected by aif1_mstr. in master mode, the bclk1 and lrclk1 signals are generated by the WM8994 when one or more aif1 channels is enabled. when aif1_lrclk_frc or aif1_clk_frc is s et in master mode, then lrclk1 and adclrclk1 are output at all times, including when none of the aif1 audio channels is enabled. note that lrclk1 and adclrclk1 are derived from bclk1, and either an internal or external bclk1 signal must also be present to generate lrclk1 or adclrclk1. when aif1_clk_frc is set in master mode, then bclk1 is output at all times, including when none of the aif1 audio channels is enabled. the aif1 interface can be tri-stated by setting the aif1_tri register. when this bit is set, then all of the aif1 outputs are un-driven (high-impedance). note that the adclrclk1/gpio1 pin is a configurable pin which may take different functions independent of aif1. the aif1_tri register only controls the adclrclk1/gpio1 pin when its functi on is set to adclrclk1. see ?general purpose input/output? to configure the gpio1 pin. register address bit label default description r770 (0302h) aif1 master/slave 15 aif1_tri 0 aif1 audio interface tri-state 0 = aif1 pins operate normally 1 = tri-state all aif1 interface pins note that the gpio1 pin is controlled by this register only when configured as adclrclk1. 14 aif1_mstr 0 aif1 audio interface master mode select 0 = slave mode 1 = master mode 13 aif1_clk_f rc 0 forces bclk1, lrclk1 and adclrclk1 to be enabled when all aif1 audio channels are disabled. 0 = normal 1 = bclk1, lrclk1 and adclrclk1 always enabled in master mode 12 aif1_lrcl k_frc 0 forces lrclk1 and adclrclk1 to be enabled when all aif1 audio channels are disabled. 0 = normal 1 = lrclk1 and adclrclk1 always enabled in master mode table 87 aif1 master / slave and tri-state control
WM8994 production data w pd, april 2012, rev 4.4 170 aif1 - signal path enable the aif1 interface supports up to four input channels and up to four output channels. all enabled channels are transmitted (on adcdat) or received (on dacdat) sequentially, using time division multiplexing (tdm). each of the available channels can be enabled or disabled using the register bits defined in table 88. register address bit label default description r4 (0004h) power management (4) 11 aif1adc2l _ena 0 enable aif1adc2 (left) output path (aif1, timeslot 1) 0 = disabled 1 = enabled 10 aif1adc2r _ena 0 enable aif1adc2 (right) output path (aif1, timeslot 1) 0 = disabled 1 = enabled 9 aif1adc1l _ena 0 enable aif1adc1 (left) output path (aif1, timeslot 0) 0 = disabled 1 = enabled 8 aif1adc1r _ena 0 enable aif1adc1 (right) output path (aif1, timeslot 0) 0 = disabled 1 = enabled r5 (0005h) power management (5) 11 aif1dac2l _ena 0 enable aif1dac2 (left) input path (aif1, timeslot 1) 0 = disabled 1 = enabled 10 aif1dac2r _ena 0 enable aif1dac2 (right) input path (aif1, timeslot 1) 0 = disabled 1 = enabled 9 aif1dac1l _ena 0 enable aif1dac1 (left) input path (aif1, timeslot 0) 0 = disabled 1 = enabled 8 aif1dac1r _ena 0 enable aif1dac1 (right) input path (aif1, timeslot 0) 0 = disabled 1 = enabled table 88 aif1 signal path enable aif1 - bclk and lrclk control the bclk1 frequency is controlled relative to aif1clk by the aif1_bclk_div divider. see ?clocking and sample rates? for details of the aif1 clock, aif1clk. the lrclk1 frequency is controlled relative to bclk1 by the aif1dac_rate divider. in master mode, the lrclk1 output is generated by the WM8994 when any of the aif1 channels is enabled. (note that, when gpio1 is configured as adclrclk1, then only the aif1 dac channels will cause lrclk1 to be output.) in slave mode, the lrclk1 output is disabled by default to allow another digital audio interface to drive this pin. it is also possible to force the lrclk1 signal to be output, using the aif1dac_lrclk_dir or aif1adc_lrclk_dir register bits, allowing mixed master and slave modes. (note that, when gpio1 is configured as adclrclk1, then only the aif1dac_lrclk_dir bit will force the lrclk1 signal.)
production data WM8994 w pd, april 2012, rev 4.4 171 when the gpio1 pin is configured as adclrclk1, then the adclrclk1 frequency is controlled relative to bclk1 by the aif1adc_rate divider . in this case, the adclrclk1 is dedicated to aif1 output, and the lrclk1 pin is dedicated to aif1 input, allowing different sample rates to be supported in the two paths. in master mode, with gpio1 pin configured as adclrclk1, this output is enabled when any of the aif1 adc channels is enabled. the adclrclk1 signal can also be enabled in slave mode, using the aif1adc_lrclk_dir bit, allowing mixed master and slave modes. when the gpio1 pin is not configured as adcl rclk1, then the lrclk1 signal applies to the adc and dac channels, at a rate set by aif1dac_rate. see ?general purpose input/output? for the configuration of gpio1. note that, in ultrasonic (4fs) mode, the gpio1 pin must be configured as adclrclk1. the bclk1 output can be inverted using the aif1_bclk_inv register bit. the lrclk1 and adclrclk1 output (when selected) can be inverted using the aif1_lrclk_inv register control. note that in slave mode, when bclk1 is an input, the aif1_bclk_inv register selects the polarity of the received bclk1 signal. under default conditi ons, dacdat1 input is captured on the rising edge of bclk1, as illustrated in figure 5. when aif1_bclk_inv = 1, dacdat1 input is captured on the falling edge of bclk1. the aif1 clock generators are controlled as illustrated in figure 62. aif1 clock output control bclk1 enable aif1clk / aif1_bclk_div aif1dac_lrclk_dir bclk1 enable / aif1dac_rate lrclk1 aif1dac1l_ena aif1dac1r_ena aif1dac2l_ena aif1dac2r_ena aif1adc1l_ena aif1adc1r_ena aif1adc2l_ena aif1adc2r_ena gp1_fn != 0 aif1_clk_frc aif1adc_lrclk_dir gp1_fn != 0 aif1_clk_frc aif1_mstr aif1_lrclk_frc aif1_mstr aif1_mstr aif1adc_lrclk_dir bclk1 enable / aif1adc_rate adclrclk1 (gpio1) a i f 1 _ c l k _ f r c aif1adc1l_ena aif1adc1r_ena aif1adc2l_ena aif1adc2r_ena aif1_lrclk_frc gp1_fn = 0 note: gpio1 is configured as adclrclk1 when gp1_fn = 0 note: lrclk1 provides clocking for the dac and adc channels of aif1 when gp1_fn != 0 figure 62 audio interface 1 - bclk and lrclk control
WM8994 production data w pd, april 2012, rev 4.4 172 register address bit label default description r768 (0300h) aif1 control (1) 8 aif1_bclk _inv 0 bclk1 invert 0 = bclk1 not inverted 1 = bclk1 inverted note that aif1_bclk_inv selects the bclk1 polarity in master mode and in slave mode. 7 aif1_lrcl k_inv 0 right, left and i 2 s modes ? lrclk1 polarity 0 = normal lrclk1 polarity 1 = invert lrclk1 polarity note that aif1_lrclk_inv selects the lrclk1 polarity in master mode and in slave mode. dsp mode ? mode a/b select 0 = msb is available on 2nd bclk1 rising edge after lrclk1 rising edge (mode a) 1 = msb is available on 1st bclk1 rising edge after lrclk1 rising edge (mode b) r771 (0303h) aif1 bclk 8:4 aif1_bclk _div [4:0] 00100 bclk1 rate 00000 = aif1clk 00001 = aif1clk / 1.5 00010 = aif1clk / 2 00011 = aif1clk / 3 00100 = aif1clk / 4 00101 = aif1clk / 5 00110 = aif1clk / 6 00111 = aif1clk / 8 01000 = aif1clk / 11 01001 = aif1clk / 12 01010 = aif1clk / 16 01011 = aif1clk / 22 01100 = aif1clk / 24 01101 = aif1clk / 32 01110 = aif1clk / 44 01111 = aif1clk / 48 10000 = aif1clk / 64 10001 = aif1clk / 88 10010 = aif1clk / 96 10011 = aif1clk / 128 10100 = aif1clk / 176 10101 = aif1clk / 192 10110 - 11111 = reserved r772 (0304h) aif1adc lrclk 11 aif1adc_l rclk_dir 0 allows adclrclk1 to be enabled in slave mode 0 = normal 1 = adclrclk1 enabled in slave mode 10:0 aif1adc_r ate [10:0] 040h adclrclk1 rate adclrclk1 clock output = bclk1 / aif1adc_rate integer (lsb = 1) valid from 8..2047 r773 (0305h) aif1dac lrclk 11 aif1dac_l rclk_dir 0 allows lrclk1 to be enabled in slave mode 0 = normal 1 = lrclk1 enabled in slave mode
production data WM8994 w pd, april 2012, rev 4.4 173 register address bit label default description 10:0 aif1dac_r ate [10:0] 040h lrclk1 rate lrclk1 clock output = bclk1 / aif1dac_rate integer (lsb = 1) valid from 8..2047 table 89 aif1 bclk and lrclk control aif1 - digital audio data control the register bits controlling the audio data format, word length, left/right channel selection and tdm control for aif1 are described in table 90. in dsp mode, the left channel msb is available on either the 1 st (mode b) or 2 nd (mode a) rising edge of bclk following a rising edge of lrclk (assuming default bclk polarity). this is selected using the aif1_lrclk_inv register bit, as described in table 89. a digital gain function is available at the audio interface input path to boost the dac volume when a small signal is received on dacdat1. this is controlled using the aif1dac_boost register. to prevent clipping, this function should not be used when the boosted data is expected to be greater than 0dbfs. register address bit label default description r768 (0300h) aif1 control (1) 15 aif1adcl_ src 0 aif1 left digital audio interface source 0 = left adc data is output on left channel 1 = right adc data is output on left channel 14 aif1adcr_ src 1 aif1 right digital audio interface source 0 = left adc data is output on right channel 1 = right adc data is output on right channel 13 aif1adc_t dm 0 aif1 transmit (adc) tdm control 0 = adcdat1 drives logic ?0? when not transmitting data 1 = adcdat1 is tri-stated when not transmitting data 6:5 aif1_wl [1:0] 10 aif1 digital audio interface word length 00 = 16 bits 01 = 20 bits 10 = 24 bits 11 = 32 bits note - 8-bit modes can be selected using the ?companding? control bits. 4:3 aif1_fmt [1:0] 10 aif1 digital audio interface format 00 = right justified 01 = left justified 10 = i 2 s format 11 = dsp mode r769 (0301h) aif1 control (2) 15 aif1dacl_ src 0 aif1 left receive data source select 0 = left dac receives left interface data 1 = left dac receives right interface data 14 aif1dacr_ src 1 aif1 right receive data source select 0 = right dac receives left interface data 1 = right dac receives right interface data
WM8994 production data w pd, april 2012, rev 4.4 174 register address bit label default description 11:10 aif1dac_b oost [1:0] 00 aif1 input path boost 00 = 0db 01 = +6db (input must not exceed -6dbfs) 10 = +12db (input must not exceed -12dbfs) 11 = +18db (input must not exceed -18dbfs) r774 (0306h) aif1 dac data 1 aif1dacl_ dat_inv 0 aif1 left receive data invert 0 = not inverted 1 = inverted 0 aif1dacr_ dat_inv 0 aif1 right receive data invert 0 = not inverted 1 = inverted r775 (0307h) aif1 adc data 1 aif1adcl_ dat_inv 0 aif1 left transmit data invert 0 = not inverted 1 = inverted 0 aif1adcr_ dat_inv 0 aif1 right transmit data invert 0 = not inverted 1 = inverted table 90 aif1 digital audio data control aif1 - mono mode aif1 can be configured to operate in mono dsp mode by setting aif1_mono = 1 as described in table 91. note that mono mode is only supported in dsp mode, ie when aif1_fmt = 11. in mono mode, the left channel data or the right channel data may be selected for output on adcdat1. the selected channel is determined by the aif1adc1l_ena and aif1adc1r_ena bits. (if both bits are set, then the right channel data is selected.) in mono mode, the dacdat1 input can be enabled on the left and/or right signal paths using the aif1dac1l_ena and aif1dac1r_ena bits. the mono input can be enabled on both paths at the same time if required. in mono mode, the number of bclk cycles per lrclk frame must be less than double the aif1 word length. this requires aif1dac_rate to be less than double the value selected by the aif1_wl register. when the gpio1 pin is configured as adclrclk1, then aif1adc_rate must also be less than double the value selected by the aif1_wl register. see table 89 for details of the aif1dac_rate and aif1adc_rate registers. note that aif1 tdm mode and aif1 mono mode cannot be supported simultaneously. register address bit label default description r769 (0301h) aif1 control (2) 8 aif1_mono 0 aif1 dsp mono mode 0 = disabled 1 = enabled note that mono mode is only supported when aif1_fmt = 11. the number of bclk cycles per lrclk frame must be less the 2 x aif1 word length. table 91 aif1 mono mode control
production data WM8994 w pd, april 2012, rev 4.4 175 aif1 - companding the WM8994 supports a-law and ? -law companding on both transmit (adc) and receive (dac) sides of aif1. this is configured using the register bits described in table 92. register address bit label default description r769 (0301h) aif1 control (2) 4 aif1dac_c omp 0 aif1 receive companding enable 0 = disabled 1 = enabled 3 aif1dac_c ompmode 0 aif1 receive companding type 0 = -law 1 = a-law 2 aif1adc_c omp 0 aif1 transmit companding enable 0 = disabled 1 = enabled 1 aif1adc_c ompmode 0 aif1 transmit companding type 0 = -law 1 = a-law table 92 aif1 companding companding involves using a piecewise linear approximation of the following equations (as set out by itu-t g.711 standard) for data compression: ? -law (where ? =255 for the u.s. and japan): f(x) = ln( 1 + ? |x|) / ln( 1 + ? ) } for -1 x 1 a-law (where a=87.6 for europe): f(x) = a|x| / ( 1 + lna) ? for x 1/a f(x) = ( 1 + lna|x|) / (1 + lna) ? for 1/a x 1 the companded data is also inverted as recommended by the g.711 standard (all 8 bits are inverted for ? -law, all even data bits are inverted for a-law). the data will be transmitted as the first 8 msbs of data. companding converts 13 bits ( ? -law) or 12 bits (a-law) to 8 bits using non-linear quantization. this provides greater precision for low amplitude signals than for high amplitude signals, resulting in a greater usable dynamic range than 8 bit linear quantization. the companded signal is an 8-bit word comprising sign (1 bit), exponent (3 bits) and mantissa (4 bits). aif1 8-bit mode is selected whenever aif1dac_comp=1 or aif1adc_comp=1. the use of 8-bit data allows samples to be passed using as few as 8 bclk1 cycles per lrclk1 frame. when using dsp mode b, 8-bit data words may be transferred consecutively every 8 bclk1 cycles. aif1 8-bit mode (without companding) may be enabled by setting aif1dac_compmode=1 or aif1adc_compmode=1, when aif1dac_comp=0 and aif1adc_comp=0. bit7 bit[6:4] bit[3:0] sign exponent mantissa table 93 8-bit companded word composition
WM8994 production data w pd, april 2012, rev 4.4 176 u-law companding 0 20 40 60 80 100 120 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 normalised input companded output 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 normalised output figure 63 -law companding a-law companding 0 20 40 60 80 100 120 0 0.2 0.4 0.6 0.8 1 normalised input companded output 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 normalised output figure 64 a-law companding aif1 - loopback the aif1 interface can provide a loopback option. when the aif1_loopback bit is set, then aif1 digital audio output is routed to the aif1 digital audio input. the normal input (dacdat1) is not used when aif1 loopback is enabled. register address bit label default description r769 (0301h) aif1 control (2) 0 aif1_loop back 0 aif1 digital loopback function 0 = no loopback 1 = loopback enabled (adcdat1 data output is directly input to dacdat1 data input). table 94 aif1 loopback
production data WM8994 w pd, april 2012, rev 4.4 177 aif2 - master / slave and tri-state control the digital audio interface aif2 can operate in master or slave modes, selected by aif2_mstr. in master mode, the bclk2 and lrclk2 signals are generated by the WM8994 when one or more aif2 channels is enabled. when aif2_lrclk_frc or aif2_clk_frc is s et in master mode, then lrclk2 and adclrclk2 are output at all times, including when none of the aif2 audio channels is enabled. note that lrclk2 and adclrclk2 are derived from bclk2, and either an internal or external bclk2 signal must also be present to generate lrclk2 or adclrclk2. when aif2_clk_frc is set in master mode, then bclk2 is output at all times, including when none of the aif2 audio channels is enabled. note that the aif2 pins are also gpio pins, w hose function is configurable. these pins must be configured as aif functions when used as audi o interface pins. see ?general purpose input/output?. the aif2 interface can be tri-stated by setting the aif2_tri register. when this bit is set, then all of the aif2 outputs are un-driven (high-impedance). the aif2_tri register only affects those pins which are configured for aif2 functions; it does not affec t pins which are configured for other functions. register address bit label default description r786 (0312h) aif2 master/slave 15 aif2_tri 0 aif2 audio interface tri-state 0 = aif2 pins operate normally 1 = tri-state all aif2 interface pins note that pins not configured as aif2 functions are not affected by this register. 14 aif2_mstr 0 aif2 audio interface master mode select 0 = slave mode 1 = master mode 13 aif2_clk_f rc 0 forces bclk2, lrclk2 and adclrclk2 to be enabled when all aif2 audio channels are disabled. 0 = normal 1 = bclk2, lrclk2 and adclrclk2 always enabled in master mode 12 aif2_lrcl k_frc 0 forces lrclk2 and adclrclk2 to be enabled when all aif2 audio channels are disabled. 0 = normal 1 = lrclk2 and adclrclk2 always enabled in master mode table 95 aif2 master / slave and tri-state control
WM8994 production data w pd, april 2012, rev 4.4 178 aif2 - signal path enable the aif2 interface supports two input channels and two output channels. each of the available channels can be enabled or disabled using the register bits defined in table 96. register address bit label default description r4 (0004h) power management (4) 13 aif2adcl_ ena 0 enable aif2adc (left) output path 0 = disabled 1 = enabled 12 aif2adcr_ ena 0 enable aif2adc (right) output path 0 = disabled 1 = enabled r5 (0005h) power management (5) 13 aif2dacl_ ena 0 enable aif2dac (left) input path 0 = disabled 1 = enabled 12 aif2dacr_ ena 0 enable aif2dac (right) input path 0 = disabled 1 = enabled table 96 aif2 signal path enable aif2 - bclk and lrclk control the bclk2 frequency is controlled relative to aif2clk by the aif2_bclk_div divider. see ?clocking and sample rates? for details of the aif2 clock, aif2clk. the lrclk2 frequency is controlled relative to bclk2 by the aif2dac_rate divider. in master mode, the lrclk2 output is generated by the WM8994 when any of the aif2 channels is enabled. (note that, when gpio6 is configured as adclrclk2, then only the aif2 dac channels will cause lrclk2 to be output.) in slave mode, the lrclk2 output is disabled by default to allow another digital audio interface to drive this pin. it is also possible to force the lrclk2 signal to be output, using the aif2dac_lrclk_dir or aif2adc_lrclk_dir register bits, allowing mixed master and slave modes. (note that, when gpio6 is configured as adclrclk2, then only the aif2dac_lrclk_dir bit will force the lrclk2 signal.) when the gpio6 pin is configured as adclrclk2, then the adclrclk2 frequency is controlled relative to bclk2 by the aif2adc_rate divider . in this case, the adclrclk2 is dedicated to aif2 output, and the lrclk2 pin is dedicated to aif2 input, allowing different sample rates to be supported in the two paths. in master mode, with gpio6 pin configured as adclrclk2, this output is enabled when any of the aif2 adc channels is enabled. the adclrclk2 signal can also be enabled in slave mode, using the aif2adc_lrclk_dir bit, allowing mixed master and slave modes. see ?general purpose input/output? for the configuration of gpio6. the bclk2 output can be inverted using the aif2_bclk_inv register bit. the lrclk2 and adclrclk2 output (when selected) can be inverted using the aif2_lrclk_inv register control. note that in slave mode, when bclk2 is an input, the aif2_bclk_inv register selects the polarity of the received bclk2 signal. under default conditi ons, dacdat2 input is captured on the rising edge of bclk2, as illustrated in figure 5. when aif2_bclk_inv = 1, dacdat2 input is captured on the falling edge of bclk2. the aif2 clock generators are controlled as illustrated in figure 65.
production data WM8994 w pd, april 2012, rev 4.4 179 aif2 clock output control bclk2 (gpio3) enable aif2clk / aif2_bclk_div aif2dac_lrclk_dir bclk2 enable / aif2dac_rate lrclk2 (gpio4) aif2dacl_ena aif2dacr_ena aif2adcl_ena aif2adcr_ena gp6_fn != 0 aif2_clk_frc aif2adc_lrclk_dir gp6_fn != 0 aif2_clk_frc aif2_mstr aif2_lrclk_frc aif2_mstr aif2_mstr aif2adc_lrclk_dir bclk2 enable / aif2adc_rate adclrclk2 (gpio6) a i f 2 _ c l k _ f r c aif2adcl_ena aif2adcr_ena aif2_lrclk_frc gp6_fn = 0 note: gpio6 is configured as adclrclk2 when gp6_fn = 0 note: lrclk2 provides clocking for the dac and adc channels of aif2 when gp6_fn != 0 figure 65 audio interface 2 - bclk and lrclk control
WM8994 production data w pd, april 2012, rev 4.4 180 register address bit label default description r784 (0310h) aif2 control (1) 8 aif2_bclk _inv 0 bclk2 invert 0 = bclk2 not inverted 1 = bclk2 inverted note that aif2_bclk_inv selects the bclk2 polarity in master mode and in slave mode. 7 aif2_lrcl k_inv 0 right, left and i 2 s modes ? lrclk2 polarity 0 = normal lrclk2 polarity 1 = invert lrclk2 polarity note that aif2_lrclk_inv selects the lrclk2 polarity in master mode and in slave mode. dsp mode ? mode a/b select 0 = msb is available on 2nd bclk2 rising edge after lrclk2 rising edge (mode a) 1 = msb is available on 1st bclk2 rising edge after lrclk2 rising edge (mode b) r787 (0313h) aif2 bclk 8:4 aif2_bclk _div [4:0] 00100 bclk2 rate 00000 = aif2clk 00001 = aif2clk / 1.5 00010 = aif2clk / 2 00011 = aif2clk / 3 00100 = aif2clk / 4 00101 = aif2clk / 5 00110 = aif2clk / 6 00111 = aif2clk / 8 01000 = aif2clk / 11 01001 = aif2clk / 12 01010 = aif2clk / 16 01011 = aif2clk / 22 01100 = aif2clk / 24 01101 = aif2clk / 32 01110 = aif2clk / 44 01111 = aif2clk / 48 10000 = aif2clk / 64 10001 = aif2clk / 88 10010 = aif2clk / 96 10011 = aif2clk / 128 10100 = aif2clk / 176 10101 = aif2clk / 192 10110 - 11111 = reserved r788 (0314h) aif2adc lrclk 11 aif2adc_l rclk_dir 0 allows adclrclk2 to be enabled in slave mode 0 = normal 1 = adclrclk2 enabled in slave mode 10:0 aif2adc_r ate [10:0] 040h adclrclk2 rate adclrclk2 clock output = bclk2 / aif2adc_rate integer (lsb = 1) valid from 8..2047 r789 (0315h) aif2dac lrclk 11 aif2dac_l rclk_dir 0 allows lrclk2 to be enabled in slave mode 0 = normal 1 = lrclk2 enabled in slave mode
production data WM8994 w pd, april 2012, rev 4.4 181 register address bit label default description 10:0 aif2dac_r ate [10:0] 040h lrclk2 rate lrclk2 clock output = bclk2 / aif2dac_rate integer (lsb = 1) valid from 8..2047 table 97 aif2 bclk and lrclk control aif2 - digital audio data control the register bits controlling the audio data format, word length, left/right channel selection and tdm control for aif2 are described in table 98. when tdm mode is enabled on aif2, the WM8994 can transmit and receive audio data in slot 0 or slot 1. in this case, the adcdat2 output is tri-stated during the unused timeslot, allowing another device to transmit data on the same pin. see ?signal timing requirements? for the associated timing details. (note that, when tdm is not enabled on aif2, the adcdat2 output is driven logic ?0? during the unused timeslot.) in dsp mode, the left channel msb is available on either the 1 st (mode b) or 2 nd (mode a) rising edge of bclk following a rising edge of lrclk (assuming default bclk polarity). this is selected using the aif2_lrclk_inv register bit, as described in table 97. a digital gain function is available at the audio interface input path to boost the dac volume when a small signal is received on dacdat2. this is controlled using the aif2dac_boost register. to prevent clipping, this function should not be used when the boosted data is expected to be greater than 0dbfs. register address bit label default description r784 (0310h) aif2 control (1) 15 aif2adcl_ src 0 aif2 left digital audio interface source 0 = left adc data is output on left channel 1 = right adc data is output on left channel 14 aif2adcr_ src 1 aif2 right digital audio interface source 0 = left adc data is output on right channel 1 = right adc data is output on right channel 13 aif2adc_t dm 0 aif2 transmit (adc) tdm enable 0 = normal adcdat2 operation 1 = tdm enabled on adcdat2 12 aif2adc_t dm_chan 0 aif2 transmit (adc) tdm slot select 0 = slot 0 1 = slot 1 6:5 aif2_wl [1:0] 10 aif2 digital audio interface word length 00 = 16 bits 01 = 20 bits 10 = 24 bits 11 = 32 bits note - 8-bit modes can be selected using the ?companding? control bits. 4:3 aif2_fmt [1:0] 10 aif2 digital audio interface format 00 = right justified 01 = left justified 10 = i 2 s format 11 = dsp mode r785 (0311h) aif2 control (2) 15 aif2dacl_ src 0 aif2 left receive data source select 0 = left dac receives left interface data 1 = left dac receives right interface data
WM8994 production data w pd, april 2012, rev 4.4 182 register address bit label default description 14 aif2dacr_ src 1 aif2 right receive data source select 0 = right dac receives left interface data 1 = right dac receives right interface data 13 aif2dac_t dm 0 aif2 receive (dac) tdm enable 0 = normal dacdat2 operation 1 = tdm enabled on dacdat2 12 aif2dac_t dm_chan 0 aif2 receive (dac) tdm slot select 0 = slot 0 1 = slot 1 11:10 aif2dac_b oost [1:0] 00 aif2 input path boost 00 = 0db 01 = +6db (input must not exceed -6dbfs) 10 = +12db (input must not exceed -12dbfs) 11 = +18db (input must not exceed -18dbfs) r790 (0316h) aif2 dac data 1 aif2dacl_ dat_inv 0 aif2 left receive data invert 0 = not inverted 1 = inverted 0 aif2dacr_ dat_inv 0 aif2 right receive data invert 0 = not inverted 1 = inverted r791 (0317h) aif2 adc data 1 aif2adcl_ dat_inv 0 aif2 left transmit data invert 0 = not inverted 1 = inverted 0 aif2adcr_ dat_inv 0 aif2 right transmit data invert 0 = not inverted 1 = inverted table 98 aif2 digital audio data control aif2 - mono mode aif2 can be configured to operate in mono dsp mode by setting aif2_mono = 1 as described in table 99. note that mono mode is only supported in dsp mode, ie when aif2_fmt = 11. in mono mode, the left channel data or the right channel data may be selected for output on adcdat2. the selected channel is determined by the aif2adcl_ena and aif2adcr_ena bits. (if both bits are set, then the right channel data is selected.) in mono mode, the dacdat2 input can be enabled on the left and/or right signal paths using the aif2dacl_ena and aif2dacr_ena bits. the mono input can be enabled on both paths at the same time if required. in mono mode, the number of bclk cycles per lrclk frame must be less than double the aif2 word length. this requires aif2dac_rate to be less than double the value selected by the aif2_wl register. when the gpio6 pin is configured as adclrclk2, then aif2adc_rate must also be less than double the value selected by the aif2_wl register. see table 89 for details of the aif2dac_rate and aif2adc_rate registers. register address bit label default description r785 (0311h) aif2 control (2) 8 aif2_mono 0 aif2 dsp mono mode 0 = disabled 1 = enabled note that mono mode is only supported when aif2_fmt = 11. the number of bclk cycles per lrclk frame must be less the 2 x aif2 word length. table 99 aif2 mono mode control
production data WM8994 w pd, april 2012, rev 4.4 183 aif2 - companding the WM8994 supports a-law and ? -law companding on both transmit (adc) and receive (dac) sides of aif2. this is configured using the register bits described in table 100. for more details on companding, see the audio interface aif1 description above. register address bit label default description r785 (0311h) aif2 control (2) 4 aif2dac_c omp 0 aif2 receive companding enable 0 = disabled 1 = enabled 3 aif2dac_c ompmode 0 aif2 receive companding type 0 = -law 1 = a-law 2 aif2adc_c omp 0 aif2 transmit companding enable 0 = disabled 1 = enabled 1 aif2adc_c ompmode 0 aif2 transmit companding type 0 = -law 1 = a-law table 100 aif2 companding aif2 - loopback the aif2 interface can provide a loopback option. when the aif2_loopback bit is set, then aif2 digital audio output is routed to the aif2 digital audio input. the normal input (dacdat2) is not used when aif2 loopback is enabled. register address bit label default description r785 (0311h) aif2 control (2) 0 aif2_loop back 0 aif2 digital loopback function 0 = no loopback 1 = loopback enabled (adcdat2 data output is directly input to dacdat2 data input). table 101 aif2 loopback
WM8994 production data w pd, april 2012, rev 4.4 184 audio interface aif3 configuration the WM8994 provides two full audio interfaces, aif1 and aif2. a third interface, aif3, is partially supported, using multiplexers to re-configure alternate connections to aif1 or aif2. the relevant multiplexers are illustrated in figure 66. note that, in addition to providing alternate input / output pins to the audio interfaces aif1 and aif2, the multiplexers also provide the capability to link aif3 pins directly to aif2 pins, without involving the aif2 interface processing resource. all of the aif3 connections are supported on pins wh ich also provide gpio functions. these pins must be configured as aif functions when used as audio interface pins. see ?general purpose input/output?. figure 66 audio interface aif3 configuration the gpio8 pin also supports the dacdat3 functi on. when configured as dacdat3, this pin may be used as an alternate data input pin to aif1 or aif2. the data input source for aif1 is selected using the aif1_dacdat_src register. the data input source for aif2 is selected using the aif2_dacdat_src register. the gpio8 pin is configured as dacdat3 by setti ng gp8_fn = 00h. note that it is also necessary to set gp3_fn = 00h and gp5_fn = 00h when using the dacdat3 function on the gpio8 pin. the gpio9 pin also supports the adcdat3 functi on. when configured as adcdat3, this pin may be used as an alternate data output pin to aif1 or aif2. it is also possible to route the dacdat2 input pin to the adcdat3 output. the adcdat3 source is selected using the aif3_adcdat_src register. the dacdat3 input pin referenced above may also be routed to the adcdat2 output. the adcdat2 source is selected using the aif2_adcdat_src register. the gpio10 pin also supports the lrclk3 function. when configured as lrclk3, this pin outputs the daclrclk signal from aif1 or aif2. the applicable aif source is determined automatically as defined in table 102. note that the lrclk3 signal is also controlled by the logic illustrated in figure 62 (aif1) or figure 65 (aif2), depending on the selected aif source.
production data WM8994 w pd, april 2012, rev 4.4 185 the gpio11 pin also supports the bclk3 function. when configured as bclk3, this pin outputs the bclk signal from aif1 or aif2. the applicable aif source is determined automatically as defined in table 102. note that the bclk3 signal is also controlled by the logic illustrated in figure 62 (aif1) or figure 65 (aif2), depending on the selected aif source. condition description aif1_dacdat_src = 1 (dacdat3 selected as aif1 data input) aif1 selected as bclk3 / lrclk3 source aif3_adcdat_src[1:0] = 00 (aif1 data output selected on adcdat3) aif1 selected as bclk3 / lrclk3 source all other conditions aif2 selected as bclk3 / lrclk3 source table 102 bclk3 / lrclk3 configuration aif3 interface can be tri-stated by setting the aif3_tri register. when this bit is set, then all of the aif3 outputs are un-driven (high-impedance). the aif3_tris register only affects those pins which are configured for aif3 functions; it does not affec t pins which are configured for other functions. register address bit label default description r6 (0006h) power management (6) 5 aif3_tri 0 aif3 audio interface tri-state 0 = aif3 pins operate normally 1 = tri-state all aif3 interface pins note that pins not configured as aif3 functions are not affected by this register. 4:3 aif3_adcd at_src [1:0] 00 gpio9/adcdat3 source select 00 = aif1 adcdat1 01 = aif2 adcdat2 10 = gpio5/dacdat2 11 = reserved note that gpio9 must be configured as adcdat3. for selection 10, the gpio5 pin must also be configured as dacdat2. 2 aif2_adcd at_src 0 gpio7/adcdat2 source select 0 = aif2 adcdat2 1 = gpio8/dacdat3 note that gpio7 must be configured as adcdat2. for selection 1, the gpio8 pin must also be configured as dacdat3. 1 aif2_dacd at_src 0 aif2 dacdat source select 0 = gpio5/dacdat2 1 = gpio8/dacdat3 note that the selected source must be configured as dacdat2 or dacdat3. 0 aif1_dacd at_src 0 aif1 dacdat source select 0 = dacdat1 1 = gpio8/dacdat3 note that, for selection 1, the gpio8 pin must be configured as dacdat3. table 103 audio interface aif3 configuration
WM8994 production data w pd, april 2012, rev 4.4 186 digital pull-up and pull-down the WM8994 provides integrated pull-up and pull-down resistors on each of the dacdat1, lrclk1 and bclk1 pins. this provides a flexible capability for interfacing with other devices. each of the pull-up and pull-down resistors can be configured independently using the register bits described in table 104. note that if the pull-up and pull-down are both enabled for any pin, then the pull-up and pull-down will be disabled. register address bit label default description r1824 (0720h) pull control (1) 5 dacdat1_pu 0 dacdat1 pull-up enable 0 = disabled 1 = enabled 4 dacdat1_pd 0 dacdat1 pull-down enable 0 = disabled 1 = enabled 3 daclrclk1_ pu 0 lrclk1 pull-up enable 0 = disabled 1 = enabled 2 daclrclk1_ pd 0 lrclk1 pull-down enable 0 = disabled 1 = enabled 1 bclk1_pu 0 bclk1 pull-up enable 0 = disabled 1 = enabled 0 bclk1_pd 0 bclk1 pull-down enable 0 = disabled 1 = enabled table 104 digital pull-up and pull-down control
production data WM8994 w pd, april 2012, rev 4.4 187 clocking and sample rates the WM8994 requires a clock for each of the digital audio interfaces (aif1 and aif2). these may be derived from a common clock reference, or from independent references. under typical clocking configurations, many commonly-used audio sample rates can be derived directly from the external reference; for additional flexibility, the WM8994 incorporates two frequency locked loop (fll) circuits to perform frequency conversion and filtering. external clock signals may be connected via mc lk1 and mclk2. (note that mclk2 is an alternate function of the gpio2 pin.) in aif slave modes, the bclk or lrclk signals may be used as a reference for the aif clocks. the WM8994 performs stereo full-duplex sample rate conversion between the audio interfaces aif1 and aif2, enabling digital audio to be routed between the interfaces, and asynchronous audio data to be mixed together. see ?sample rate conversion? for further details. in aif slave modes, it is important to ensure the applicable aif clock (aif1clk or aif2clk) is synchronised with the associated external lrclk. this can be achieved by selecting an mclk input that is derived from the same reference as the lrclk, or can be achieved by selecting the external bclk or lrclk signals as a reference input to one of the flls, as a source for the aif clock. if the aif clock is not synchronised with the lrclk, then clicks arising from dropped or repeated audio samples will occur, due to the inherent tolerances of multiple, asynchronous, system clocks. see ?applications information? for further details on valid clocking configurations. clocking for the audio interfaces is provided by aif1clk and aif2clk for aif1 and aif2 respectively. an additional internal clock, sysclk is derived from either aif1clk or aif2clk in order to support the dsp core functions, charge pum p, class d switching amplifier, dc servo control, control write sequencer and other internal functions. the following operating limits must be observed when configuring the WM8994 clocks. failure to observe these limits will result in degraded performance and/or incorrect system functionality. latency in the WM8994 signal paths is reduced at high sysclk frequencies; power consumption is reduced at low sysclk frequencies. ? sysclk ? 12.5mhz ? sysclk ? 4.096mhz ? sysclk ? 256 x fs (where fs = fastest audio sample rate in use) ? aif1clk ? 12.5mhz ? aif1clk ? 256 x aif1 sample rate (aif1_sr) ? aif2clk ? 12.5mhz ? aif2clk ? 256 x aif2 sample rate (aif2_sr) note that, if dac_osr128 = 0 and adc_osr128 = 0, then a slower sysclk frequency is possible; in this case, the requirement is sysclk ? 2.048mhz. note that, under specific operating conditions, clocki ng ratios of 128 x fs and 192 x fs are possible; this is described in the ?digital to analogue converter (dac)? section. the sysclk frequency must be ? 256 x fs, (where fs is the faster rate of aif1_sr or aif2_sr). the sysclk frequency is derived from aif1clk or aif2clk, as selected by the sysclk_src register (see table 109). note that the bandwidth of the digital audio mixing paths will be determined by the sample rate of whichever aif is selected as the sysclk source. when using only one audio interface, the active interface should be selected as the sysclk sour ce. for best audio performance when using aif1 and aif2 simultaneously, the sysclk source must select the aif with the highest sample rate (aifn_sr).
WM8994 production data w pd, april 2012, rev 4.4 188 the aif n clk / fs ratio is the ratio of aif n clk to the aif n sample rate, where ? n ? identifies the applicable audio interface aif1 or aif2. the aif clocking ratio and sample rate are set by the aif n clk_rate and aif n _sr register fields, defined in table 106 and table 108. note that, in the case of mixed input/output path sample rates on either interface, then aif n clk_rate and aif n _sr are set according to the higher of the two sample rates. the clocking configuration for aif1clk, aif2clk and sysclk is illustrated in figure 67. the WM8994 provides integrated pull-up and pull-down resistors on the mclk1 pin. this provides a flexible capability for interfacing with other devices. this is configured as described in table 109. note that if mclk1_pu and mclk1_pd are both set, then the pull-up and pull-down will be disabled. figure 67 audio interface clock control aif1clk enable the aif1clk_src register is used to select the aif1clk source. the source may be mclk1, mclk2, fll1 or fll2. if either of the frequency locked loops is selected as the source, then the fll(s) must be enabled and configured as described later. the aif1clk clock may be adjusted by the aif1clk_div divider, which provides a divide-by-two option. the selected source may also be inverted by setting the aif1clk_inv bit. the maximum aif1clk frequency is specified in the ?electrical characteristics? section. note that, when aif1clk_div = 1, the maximum frequency limit applies to the divided-down aif1clk frequency. the aif1clk is enabled by the register bit ai f1clk_ena. this bit should be set to 0 when reconfiguring the clock sources. it is not recommended to change aif1clk_src while the aif1clk_ena bit is set.
production data WM8994 w pd, april 2012, rev 4.4 189 register address bit label default description r512 (0200h) aif 1 clocking (1) 4:3 aif1clk_sr c 00 aif1clk source select 00 = mclk1 01 = mclk2 10 = fll1 11 = fll2 2 aif1clk_inv 0 aif1clk invert 0 = aif1clk not inverted 1 = aif1clk inverted 1 aif1clk_div 0 aif1clk divider 0 = aif1clk 1 = aif1clk / 2 0 aif1clk_en a 0 aif1clk enable 0 = disabled 1 = enabled table 105 aif1clk enable aif1 clocking configuration the WM8994 supports a wide range of standard audio sample rates from 8khz to 96khz. the aif1 clocking configuration is selected using 4 control fields, which are set according to the required aif digital audio sample rate, and the adc/dac clocking rate. the aif1_sr register is set according to the aif1 sample rate. note that 88.2khz and 96khz modes are supported for aif1 input (dac playback) only. the aif1clk_rate register is set according to the ratio of aif1clk to the aif1 sample rate. note that there a some restrictions on the supported clocking ratios, depending on the selected sample rate and operating conditions. the supported configurations are detailed in the ?digital microphone interface?, ?analogue to digital converter (adc)? and ?d igital to analogue converter (dac)? sections, according to each applicable function. the audio interface can support different sample rates for the input data (dac path) and output data (adc path) simultaneously. in this case, the aif1_sr and aif1clk_rate fields should be set according to the faster of the two sample rates. when different sample rates are used for input data (dac path) and output data (adc path), the clocking of the slower path is set using aif1dac_div (if the aif input path has the slower sample rate) or aif1adc_div (if the aif output path has the slower sample rate). the appropriate divider is set according to the ratio of the two sample rates. for example, if aif1 input uses 48khz sample rate, and aif1 output uses 8khz, then aif1adc_div should be set to 110b (divide by 6). note that the audio interface cannot support every possible combination of input and output sample rate simultaneously, but only where the ratio of the sample rates matches the available aif1adc_div or aif1dac_div divider settings. note that the WM8994 performs sample rate conversion, where necessary, to provide digital mixing and interconnectivity between the audio interfaces and the dsp core functions. one stereo sample rate converter (src) is provided for audio input; a second stereo src is provided for audio output. each src is automatically configured on aif1 or aif2, depending on the selected clocking and sample rate settings. the WM8994 cannot support configurations that would require src on the input or output paths of both interfaces simultaneously. see ?sample rate conversion? for further details.
WM8994 production data w pd, april 2012, rev 4.4 190 register address bit label default description r513 (0201h) aif 1 clocking (2) 5:3 aif1dac_div 000 selects the aif1 input path sample rate relative to the aif1 output path sample rate. this field should only be changed from default in modes where the aif1 input path sample rate is slower than the aif1 output path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved 2:0 aif1adc_div 000 selects the aif1 output path sample rate relative to the aif1 input path sample rate. this field should only be changed from default in modes where the aif1 output path sample rate is slower than the aif1 input path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved r528 (0210h) aif1 rate 7:4 aif1_sr 1000 selects the aif1 sample rate (fs) 0000 = 8khz 0001 = 11.025khz 0010 = 12khz 0011 = 16khz 0100 = 22.05khz 0101 = 24khz 0110 = 32khz 0111 = 44.1khz 1000 = 48khz 1001 = 88.2khz 1010 = 96khz all other codes = reserved note that 88.2khz and 96khz modes are supported for aif1 input (dac playback) only. 3:0 aif1clk_rat e 0011 selects the aif1clk / fs ratio 0000 = reserved 0001 = 128 0010 = 192 0011 = 256 0100 = 384 0101 = 512 0110 = 768 0111 = 1024 1000 = 1408 1001 = 1536 all other codes = reserved table 106 aif1 clocking configuration
production data WM8994 w pd, april 2012, rev 4.4 191 aif2clk enable the aif2clk_src register is used to select the aif2clk source. the source may be mclk1, mclk2, fll1 or fll2. if either of the frequency locked loops is selected as the source, then the fll(s) must be enabled and configured as described later. the aif2clk clock may be adjusted by the aif2clk_div divider, which provides a divide-by-two option. the selected source may also be inverted by setting the aif2clk_inv bit. the maximum aif2clk frequency is specified in the ?electrical characteristics? section. note that, when aif2clk_div = 1, the maximum frequency limit applies to the divided-down aif2clk frequency. the aif2clk is enabled by the register bit ai f2clk_ena. this bit should be set to 0 when reconfiguring the clock sources. it is not recommended to change aif2clk_src while the aif2clk_ena bit is set. register address bit label default description r516 (0204h) aif 2 clocking (1) 4:3 aif2clk_sr c 00 aif2clk source select 00 = mclk1 01 = mclk2 10 = fll1 11 = fll2 2 aif2clk_inv 0 aif2clk invert 0 = aif2clk not inverted 1 = aif2clk inverted 1 aif2clk_div 0 aif2clk divider 0 = aif2clk 1 = aif2clk / 2 0 aif2clk_en a 0 aif2clk enable 0 = disabled 1 = enabled table 107 aif2clk enable aif2 clocking configuration the WM8994 supports a wide range of standard audio sample rates from 8khz to 96khz. the aif2 clocking configuration is selected using 4 control fields, which are set according to the required aif digital audio sample rate, and the adc/dac clocking rate. the aif2_sr register is set according to the aif2 sample rate. note that 88.2khz and 96khz modes are supported for aif2 input (dac playback) only. the aif2clk_rate register is set according to the ratio of aif2clk to the aif2 sample rate. note that there a some restrictions on the supported clocking ratios, depending on the selected sample rate and operating conditions. the supported configurations are detailed in the ?digital microphone interface?, ?analogue to digital converter (adc)? and ?d igital to analogue converter (dac)? sections, according to each applicable function. the audio interface can support different sample rates for the input data (dac path) and output data (adc path) simultaneously. in this case, the aif2_sr and aif2clk_rate fields should be set according to the faster of the two sample rates. when different sample rates are used for input data (dac path) and output data (adc path), the clocking of the slower path is set using aif2dac_div (if the aif input path has the slower sample rate) or aif2adc_div (if the aif output path has the slower sample rate). the appropriate divider is set according to the ratio of the two sample rates. for example, if aif2 input uses 48khz sample rate, and aif2 output uses 8khz, then aif2adc_div should be set to 110b (divide by 6).
WM8994 production data w pd, april 2012, rev 4.4 192 note that the audio interface cannot support every possible combination of input and output sample rate simultaneously, but only where the ratio of the sample rates matches the available aif2adc_div or aif2dac_div divider settings. note that the WM8994 performs sample rate conversion, where necessary, to provide digital mixing and interconnectivity between the audio interfaces and the dsp core functions. one stereo sample rate converter (src) is provided for audio i nput; a second stereo src is provided for audio output. each src is automatically configured on aif1 or aif2, depending on the selected clocking and sample rate settings. the WM8994 cannot support configurations that would require src on the input or output paths of both interfaces simultaneously. see ?sample rate conversion? for further details. register address bit label default description r517 (0205h) aif 2 clocking (2) 5:3 aif2dac_div 000 selects the aif2 input path sample rate relative to the aif2 output path sample rate. this field should only be changed from default in modes where the aif2 input path sample rate is slower than the aif2 output path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved 2:0 aif2adc_div 000 selects the aif2 output path sample rate relative to the aif2 input path sample rate. this field should only be changed from default in modes where the aif2 output path sample rate is slower than the aif2 input path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved r529 (0211h) aif2 rate 7:4 aif2_sr 1000 selects the aif2 sample rate (fs) 0000 = 8khz 0001 = 11.025khz 0010 = 12khz 0011 = 16khz 0100 = 22.05khz 0101 = 24khz 0110 = 32khz 0111 = 44.1khz 1000 = 48khz 1001 = 88.2khz 1010 = 96khz all other codes = reserved note that 88.2khz and 96khz modes are supported for aif2 input (dac playback) only.
production data WM8994 w pd, april 2012, rev 4.4 193 register address bit label default description 3:0 aif2clk_rat e 0011 selects the aif2clk / fs ratio 0000 = reserved 0001 = 128 0010 = 192 0011 = 256 0100 = 384 0101 = 512 0110 = 768 0111 = 1024 1000 = 1408 1001 = 1536 all other codes = reserved table 108 aif2 clocking configuration miscellaneous clock controls sysclk provides clocking for many of the WM8994 functions. sysclk clock is required to support dsp core functions and also the charge pump, cla ss d switching amplifier, dc servo control, control write sequencer and other internal functions. the sysclk_src register is used to select the sysclk source. the source may be aif1clk or aif2clk. note that the bandwidth of the digital audio mixing paths will be determined by the sample rate of whichever aif is selected as the sysclk source. when using only one audio interface, the active interface should be selected as the sysc lk source. for best audio performance when using aif1 and aif2 simultaneously, the sysclk source must select the aif with the highest sample rate (aifn_sr). the aif1 dsp processing clock is derived from sysclk, and enabled by aif1dspclk_ena. the aif2 dsp processing clock is derived from sysclk, and enabled by aif2dspclk_ena. the clocking of the WM8994 adc, dac, digital mixer and digital microphone functions is enabled by setting sysdspclk_ena. see ?digital micr ophone interface? for details of the dmicclk frequency. two modes of adc / digital microphone operation can be selected using the adc_osr128 bit. this bit is enabled by default, giving best audio performance. de-selecting this bit provides a low power alternative setting. a high performance mode of dac operation can be selected by setting the dac_osr128 bit. when the dac_osr128 bit is set, the audio performance is improved, but power consumption is also increased. a clock is required for the charge pump circuit when the ground-referenced headphone outputs (hpout1l and hpout1r) are enabled. the charge pump clock is derived from sysclk whenever the charge pump is enabled. the charge pump clock division is configured automatically. a clock is required for the class d speaker driver circuit when the speaker outputs (spkoutl and spkoutr) are enabled. the class d clock is derived from sysclk whenever these outputs are enabled in class d mode. the class d clock division is configured automatically. see ?analogue outputs? for details of the class d switching frequency. a clock output (opclk) derived from sysclk may be output on a gpio pin. this clock is enabled by register big opclk_ena, and its frequency of this clock is controlled by opclk_div. see general purpose input/output? to configure a gpio pin for this function. a slow clock (toclk) is derived internally in order to control volume update timeouts when the zero- cross option is selected. this clock is enabled by register bit toclk_ena, and its frequency is controlled by toclk_div. a de-bounce control is provided for gpio inputs and for other functions that may be selected as gpio outputs. the de-bounced clock frequency is controlled by dbclk_div.
WM8994 production data w pd, april 2012, rev 4.4 194 the WM8994 generates a 256khz clock for internal functions; toclk and dbclk are derived from this 256khz clock. in order to generate this clock correctly when sysclk_src = 0, valid settings are required for aif1_sr and aif1clk_rate. to generate this clock correctly when sysclk_src = 1, valid settings are required for aif2_sr and aif2clk_rate. the WM8994 clocking is illustrated in figure 68. figure 68 system clocking
production data WM8994 w pd, april 2012, rev 4.4 195 register address bit label default description r2 (0002h) power management (2) 11 opclk_ena 0 gpio clock output (opclk) enable 0 = disabled 1 = enabled r520 (0208h) clocking (1) 4 toclk_ena 0 slow clock (toclk) enable 0 = disabled 1 = enabled this clock is required for zero-cross timeout. 3 aif1dspclk _ena 0 aif1 processing clock enable 0 = disabled 1 = enabled 2 aif2dspclk _ena 0 aif2 processing clock enable 0 = disabled 1 = enabled 1 sysdspclk_ ena 0 digital mixing processor clock enable 0 = disabled 1 = enabled 0 sysclk_src 0 sysclk source select 0 = aif1clk 1 = aif2clk r521 (0209h) clocking (2) 10:8 toclk_div 000 slow clock (toclk ) divider (sets toclk rate relative to 256khz.) 000 = divide by 256 (1khz) 001 = divide by 512 (500hz) 010 = divide by 1024 (250hz) 011 = divide by 2048 (125hz) 100 = divide by 4096 (62.5hz) 101 = divide by 8192 (31.2hz) 110 = divide by 16384 (15.6hz) 111 = divide by 32768 (7.8hz) 6:4 dbclk_div 000 de-bounce clock (dbclk) divider (sets dbclk rate relative to 256khz.) 000 = divide by 256 (1khz) 001 = divide by 2048 (125hz) 010 = divide by 4096 (62.5hz) 011 = divide by 8192 (31.2hz) 100 = divide by 16384 (15.6hz) 101 = divide by 32768 (7.8hz) 110 = divide by 65536 (3.9hz) 111 = divide by 131072 (1.95hz) 2:0 opclk_div 000 gpio output clock (opclk) divider 0000 = sysclk 0001 = sysclk / 2 0010 = sysclk / 3 0011 = sysclk / 4 0100 = sysclk / 5.5 0101 = sysclk / 6 0110 = sysclk / 8 0111 = sysclk / 12 1000 = sysclk / 16 1001 to 1111 = reserved
WM8994 production data w pd, april 2012, rev 4.4 196 register address bit label default description r1568 (0620h) oversampling 1 adc_osr128 1 adc / digital microphone oversample rate select 0 = low power 1 = high performance 0 dac_osr128 0 dac oversample rate select 0 = low power 1 = high performance r1824 (0720h) pull control (1) 7 mclk1_pu 0 mclk1 pull-up enable 0 = disabled 1 = enabled 6 mclk1_pd 0 mclk1 pull-down enable 0 = disabled 1 = enabled table 109 system clocking bclk and lrclk control the digital audio interfaces (aif1 and aif2) us e bclk and lrclk signals for synchronisation. in master mode, these are output signals, generated by the WM8994. in slave mode, these are input signals to the WM8994. it is also possible to support mixed master/slave operation. the bclk and lrclk signals are controlled as illustrated in figure 69. see the ?digital audio interface control? section for further details of the relevant control registers. figure 69 bclk and lrclk control control interface clocking register map access is possible with or without a sy stem clock. clocking is provided from sysclk; the sysclk_src register selects either aif1clk or aif2clk as the applicable sysclk source. when aif1clk is the sysclk source (ie. sysclk_src = 0), and aif1clk_ena = 1, then an active clock source for aif1clk must be present for control interface clocking. if the aif1clk source is stopped, then aif1clk_ena must be set to 0 for control register access. when aif2clk is the sysclk source (ie. sysclk_src = 1), and aif2clk_ena = 1, then an active clock source for aif2clk must be present for control interface clocking. if the aif2clk source is stopped, then aif2clk_ena must be set to 0 for control register access.
production data WM8994 w pd, april 2012, rev 4.4 197 frequency locked loop (fll) two integrated flls are provided to support the clocking requirements of the WM8994. these can be enabled and configured independently according to the available reference clocks and the application requirements. the reference clock may be a high frequency (eg. 12.288mhz) or low frequency (eg. 32.768khz). the fll is tolerant of jitter and may be used to generate a stable aif clock from a less stable input reference. the fll characteristics are summarised in ?electrical characteristics?. note that the fll can be used to generate a free-running clock in the abs ence of an external reference source. this is described in the ?free-running fll clock? section below. the input reference for fll1 is selected using fll1_refclk_src. the available options are mclk1, mclk2, bclk1 or lrclk1. the i nput reference for fll2 is selected using fll2_refclk_src. the available options are mc lk1, mclk2, bclk2 or lrclk2. the fll input reference configuration is illustrated in figure 70. figure 70 fll input reference selection the following description is applicable to fll1 and fll2. the associated register control fields are described in table 112 for fll1 and table 113 for fll2. the fll control registers are illustrated in figure 71. figure 71 fll configuration the fll is enabled using the fll n _ena register bit (where n = 1 for fll1 and n = 2 for fll2). note that the other fll registers should be configured before enabling the fll; the fll n _ena register bit should be set as the final step of the fll n enable sequence. when changing fll settings, it is recommended that the digital circuit be disabled via fll n _ena and then re-enabled after the other register settings have been updated. when changing the input reference frequency f ref , it is recommended that the fll be reset by setting fll n _ena to 0. note that, for normal operation of the flls, the reference voltage vmid and the bias current must also be enabled. see ?reference voltages and master bias? for details of the associated controls vmid_sel and bias_ena.
WM8994 production data w pd, april 2012, rev 4.4 198 the field fll n _refclk_div provides the option to divi de the input reference (mclk, bclk or lrclk) by 1, 2, 4 or 8. this field should be set to bring the reference down to 13.5mhz or below. for best performance, it is recommended that the highest possible frequency - within the 13.5mhz limit - should be selected. the fll output frequency is directly determined from fll n _fratio, fll n _outdiv and the real number represented by n.k. the integer portion, n, is held in the fll n _n register field (lsb = 1); the fractional portion of n.k is held in the fll n _k register field (msb = 0.5). the fll output frequency is generated according to the following equation: f out = (f vco / fll n _outdiv) the fll operating frequency, f vco is set according to the following equation: f vco = (f ref x n.k x fll n _fratio) f ref is the input frequency, as determined by fll n _refclk_div. f vco must be in the range 90-100 mhz. frequencies outside this range cannot be supported. note that the output frequencies that do not lie within the ranges quoted above cannot be guaranteed across the full range of device operating conditions. in order to follow the above requirements for f vco , the value of fll n _outdiv should be selected according to the desired output f out . the divider, fll n _outdiv, must be set so that f vco is in the range 90-100mhz. the available divisions are integers from 4 to 64. some typical settings of fll n _outdiv are noted in table 110. output frequency f out fll n _outdiv 1.875 mhz - 2.0833 mhz 101111 (divide by 48) 2.8125 mhz - 3.125 mhz 011111 (divide by 32) 3.75 mhz - 4.1667 mhz 010111 (divide by 24) 5.625 mhz - 6.25 mhz 001111 (divide by 16) 11.25 mhz - 12.5 mhz 000111 (divide by 8) 18 mhz - 20 mhz 000100 (divide by 5) 22.5 mhz - 25 mhz 000011 (divide by 4) table 110 selection of fll n _outdiv the value of fll n _fratio should be selected as described in table 111. reference frequency f ref fll n _fratio 1mhz - 13.5mhz 0h (divide by 1) 256khz - 1mhz 1h (divide by 2) 128khz - 256khz 2h (divide by 4) 64khz - 128khz 3h (divide by 8) less than 64khz 4h (divide by 16) table 111 selection of fll n _fratio in order to determine the remaining fll parameters, the fll operating frequency, f vco , must be calculated, as given by the following equation: f vco = (f out x fll n _outdiv)
production data WM8994 w pd, april 2012, rev 4.4 199 the value of fll n _n and fll n _k can then be determined as follows: n.k = f vco / (fll n _fratio x f ref ) note that f ref is the input frequency, after division by fll n _refclk_div, where applicable. in fll fractional mode, the fractional portion of the n.k multiplier is held in the fll n _k register field. this field is coded as a fixed point quantity, where the msb has a weighting of 0.5. note that, if desired, the value of this field may be calculated by multiplying k by 2 16 and treating fll n _k as an integer value, as illustrated in the following example: if n.k = 8.192, then k = 0.192 multiplying k by 2 16 gives 0.192 x 65536 = 12582.912 (decimal) apply rounding to the nearest integer = 12583 (decimal) = 3127 (hex) note that, if the required fraction cannot be represented exactly in the fll_k register, and a rounding error is introduced, then a corresponding offset will exist in the fll output frequency. in a typical application, the frequency difference will be negligible. however, if the fll is used to generate aifnclk in aif slave mode, then the rounding error may result in clicks arising from dropped or repeated audio samples. the fll1 control registers are described in table 112. the fll2 control registers are described in table 113. example settings for a variety of reference frequencies and output frequencies are shown in table 115. register address bit label default description r544 (0220h) fll1 control (1) 0 fll1_ena 0 fll1 enable 0 = disabled 1 = enabled this should be set as the final step of the fll1 enable sequence, ie. after the other fll registers have been configured. r545 (0221h) fll1 control (2) 13:8 fll1_outdiv [5:0] 000000 fll1 f out clock divider 000000 = reserved 000001 = reserved 000010 = reserved 000011 = 4 000100 = 5 000101 = 6 ? 111110 = 63 111111 = 64 (f out = f vco / fll1_outdiv) 2:0 fll1_fratio [2:0] 000 fll1 f vco clock divider 000 = 1 001 = 2 010 = 4 011 = 8 1xx = 16 r546 (0222h) fll1 control (3) 15:0 fll1_k[15:0] 0000h fll1 fractional multiply for f ref (msb = 0.5) r547 (0223h) fll1 control (4) 14:5 fll1_n[9:0] 000h fll1 integer multiply for f ref (lsb = 1)
WM8994 production data w pd, april 2012, rev 4.4 200 register address bit label default description r548 (0224h) fll1 control (5) 4:3 fll1_refclk_ div [1:0] 00 fll1 clock reference divider 00 = mclk / 1 01 = mclk / 2 10 = mclk / 4 11 = mclk / 8 mclk (or other input reference) must be divided down to <=13.5mhz. for lower power operation, the reference clock can be divided down further if desired. 1:0 fll1_refclk_ src [1:0] 00 fll1 clock source 00 = mclk1 01 = mclk2 10 = lrclk1 11 = bclk1 table 112 fll1 register map register address bit label default description r576 (0240h) fll2 control (1) 0 fll2_ena 0 fll2 enable 0 = disabled 1 = enabled this should be set as the final step of the fll2 enable sequence, ie. after the other fll registers have been configured. r577 (0241h) fll2 control (2) 13:8 fll2_outdiv [5:0] 000000 fll2 f out clock divider 000000 = reserved 000001 = reserved 000010 = reserved 000011 = 4 000100 = 5 000101 = 6 ? 111110 = 63 111111 = 64 (f out = f vco / fll2_outdiv) 2:0 fll2_fratio [2:0] 000 fll2 f vco clock divider 000 = 1 001 = 2 010 = 4 011 = 8 1xx = 16 r578 (0242h) fll2 control (3) 15:0 fll2_k[15:0] 0000h fll2 fractional multiply for f ref (msb = 0.5) r579 (0243h) fll2 control (4) 14:5 fll2_n[9:0] 000h fll2 integer multiply for f ref (lsb = 1)
production data WM8994 w pd, april 2012, rev 4.4 201 register address bit label default description r580 (0244h) fll2 control (5) 4:3 fll2_refclk_ div [1:0] 00 fll2 clock reference divider 00 = mclk / 1 01 = mclk / 2 10 = mclk / 4 11 = mclk / 8 mclk (or other input reference) must be divided down to <=13.5mhz. for lower power operation, the reference clock can be divided down further if desired. 1:0 fll2_refclk_ src [1:0] 00 fll2 clock source 00 = mclk1 01 = mclk2 10 = lrclk2 11 = bclk2 table 113 fll2 register map free-running fll clock the fll can generate a clock signal even when no external reference is available. however, it should be noted that the accuracy of this clock is reduced, and a reference source should always be used where possible. note that, in free-running modes, the fll is not sufficiently accurate for hi-fi adc or dac applications. however, the free-running modes are suitable for clocking most other functions, including the write sequencer, charge pump, dc servo and class d loudspeaker driver. if an accurate reference clock is initially available, then the fll should be configured as described above. the fll will continue to generate a stable output clock after the reference input is stopped or disconnected. if no reference clock is available at the time of starting up the fll, then an internal clock frequency of approximately 12mhz can be generated by implementing the following sequence: ? enable the fll analogue oscillator (flln_osc_ena = 1) ? set the f out clock divider to divide by 8 (flln_outdiv = 000111) ? configure the oscillator frequency by setting flln_frc_nco = 1 and flln_frc_nco_val = 19h note that the free-running fll mode is not suitable for hi-fi codec applications. in the absence of any reference clock, the fll output is subject to a very wide tolerance; see ?electrical characteristics? for details of the fll accuracy. note that the free-running fll clock is selected as sysclk using the registers noted in figure 67. the free-running fll clock may be used to support analogue functions, for which the digital audio interface is not used, and there is no applicable sample rate (fs). when sysclk is required for circuits such the class d, dc servo, control write sequencer or charge pump, then valid sample rate register settings are still required, even though the digital audio interface is not active. for correct functionality when sysclk_src = 0, valid settings are required for aif1_sr and aif1clk_rate. in the case where sysclk_src = 1, then valid settings are required for aif2_sr and aif2clk_rate. the control registers applicable to fll free-running modes are described in table 114.
WM8994 production data w pd, april 2012, rev 4.4 202 register address bit label default description r544 (0220h) fll1 control (1) 1 fll1_osc_ena 0 fll1 oscillator enable 0 = disabled 1 = enabled (note that this field is required for free-running fll1 modes only) r548 (0224h) fll1 control (5) 12:7 fll1_frc_nco _val [5:0] 19h fll1 forced oscillator value valid range is 000000 to 111111 0x19h (011001) = 12mhz approx (note that this field is required for free-running fll modes only) 6 fll1_frc_nco 0 fll1 forced control select 0 = normal 1 = fll1 oscillator controlled by fll1_frc_nco_val (note that this field is required for free-running fll modes only) r576 (0240h) fll2 control (1) 1 fll2_osc_ena 0 fll2 oscillator enable 0 = disabled 1 = enabled (note that this field is required for free-running fll2 modes only) r580 (0244h) fll2 control (5) 12:7 fll2_frc_nco _val [5:0] 19h fll2 forced oscillator value valid range is 000000 to 111111 0x19h (011001) = 12mhz approx (note that this field is required for free-running fll modes only) 6 fll2_frc_nco 0 fll2 forced control select 0 = normal 1 = fll2 oscillator controlled by fll2_frc_nco_val (note that this field is required for free-running fll modes only) table 114 fll free-running mode
production data WM8994 w pd, april 2012, rev 4.4 203 gpio outputs from fll for each fll, the WM8994 has an internal signal which indicates whether the fll lock has been achieved. the fll lock status is an input to the interr upt control circuit and can be used to trigger an interrupt event - see ?interrupts?. the fll lock signal can be output directly on a gpio pin as an external indication of fll lock. see ?general purpose input/output? for details of how to configure a gpio pin to output the fll lock signal. the fll clock can be output directly on a gpio pin as a clock signal for other circuits. note that the fll clock may be output even if the fll is not selected as the WM8994 sysclk source. the fll clocking configuration is illustrated in figure 70. see ?general purpose input/output? for details of how to configure a gpio pin to output the fll clock. example fll calculation the following example illustrates how to derive the fll1 registers to generate 12.288 mhz output (f out ) from a 12.000 mhz reference clock (f ref ): ? set fll1_refclk_div in order to generate f ref <=13.5mhz: fll1_refclk_div = 00 (divide by 1) ? set fll1_outdiv for the required output frequency as shown in table 110:- f out = 12.288 mhz, therefore fll1_outdiv = 7h (divide by 8) ? set fll1_fratio for the given reference frequency as shown in table 111: f ref = 12mhz, therefore fll1_fratio = 0h (divide by 1) ? calculate f vco as given by f vco = f out x fll1_outdiv:- f vco = 12.288 x 8 = 98.304mhz ? calculate n.k as given by n.k = f vco / (fll1_fratio x f ref ): n.k = 98.304 / (1 x 12) = 8.192 ? determine fll1_n and fll1_k from the integer and fractional portions of n.k:- fll1_n is 8. fll1_k is 0.192 ? convert fll1_k into integer format: 0.192 x 65536 = 12582.912 (decimal). ? round off to 12583 (decimal) and convert to hex: 12583 (decimal) = 3127 (hex). fll1_k = 3127h
WM8994 production data w pd, april 2012, rev 4.4 204 example fll settings table 115 provides example fll settings for generating common sysclk frequencies from a variety of low and high frequency reference inputs. f source f out f ref divider n.k fratio f vco outdiv flln_n flln_k 32 khz 12.288 mhz 1 192 16 98.304 mhz 8 0c0h 0000h 32 khz 11.2896 mhz 1 176.4 16 90.3168 mhz 8 0b0h 6666h 32.768 khz 12.288 mhz 1 187.5 16 98.304 mhz 8 0bbh 8000h 32.768 khz 11.2896 mhz 1 172.2656 16 90.3168 mhz 8 0ach 4400h 44.1 khz 11.2896 mhz 1 128 16 90.3168 mhz 8 080h 0000h 48 khz 12.288 mhz 1 128 16 98.304 mhz 8 080h 0000h 128 khz 2.048 mhz 1 192 4 98.304 mhz 48 0c0h 0000h 128 khz 12.288 mhz 1 192 4 98.304 mhz 8 0c0h 0000h 512 khz 2.048 mhz 1 96 2 98.304 mhz 48 060h 0000h 512 khz 12.288 mhz 1 96 2 98.304 mhz 8 060h 0000h 1.4112 mhz 11.2896 mhz 1 64 1 90.3168 mhz 8 040h 0000h 2.8224 mhz 11.2896 mhz 1 32 1 90.3168 mhz 8 020h 0000h 1.536 mhz 12.288 mhz 1 64 1 98.304 mhz 8 040h 0000h 3.072 mhz 12.288 mhz 1 32 1 98.304 mhz 8 020h 0000h 11.2896 mhz 12.288 mhz 1 8.7075 1 98.304 mhz 8 008h b51eh 12 mhz 11.2896 mhz 1 7.5264 1 90.3168 mhz 8 007h 86c2h 12 mhz 12.288 mhz 1 8.192 1 98.304 mhz 8 008h 3127h 12.288 mhz 12.288 mhz 1 8 1 98.304 mhz 8 008h 0000h 12.288 mhz 11.2896 mhz 1 7.35 1 90.3168 mhz 8 007h 599ah 13 mhz 12.288 mhz 1 7.5618 1 98.304 mhz 8 007h 8fd5h 13 mhz 11.2896 mhz 1 6.9474 1 90.3168 mhz 8 006h f28ch 19.2 mhz 12.288 mhz 2 10.24 1 98.304 mhz 8 00ah 3d71h 19.2 mhz 11.2896 mhz 2 9.408 1 90.3168 mhz 8 009h 6873h 24 mhz 11.2896 mhz 2 7.5264 1 90.3168 mhz 8 007h 86c2h 24 mhz 12.288 mhz 2 8.192 1 98.304 mhz 8 008h 3127h 26 mhz 11.2896 mhz 2 6.9474 1 90.3168 mhz 8 006h f28ch 26 mhz 12.288 mhz 2 7.5618 1 98.304 mhz 8 007h 8fd5h 27 mhz 11.2896 mhz 2 6.6901 1 90.3168 mhz 8 006h b0adh 27 mhz 12.288 mhz 2 7.2818 1 98.304 mhz 8 007h 4823h f out = (f source / f ref divider) * n.k * fratio / outdiv the values of n and k are contained in the flln_n and flln_k registers as shown above. see table 112 and table 113 for the coding of the flln_refclk_div, flln_fratio and flln_outdiv registers. table 115 example fll settings
production data WM8994 w pd, april 2012, rev 4.4 205 sample rate conversion the WM8994 supports two main digital audio interfaces, aif1 and aif2. these interfaces are configured independently and may operate entirely asynchronously to each other. the WM8994 performs stereo full-duplex sample rate conversion between the audio interfaces, allowing digital audio to be routed between the interfaces, and allowing asynchronous audio data to be mixed together. the sample rate converters (srcs) are configured automatically within the WM8994, and no user settings are required. the srcs are enabled automatically when required and are disabled at other times. synchronisation between the audio interfaces is not instantaneous when the clocking or sample rate configurations are updated; the lock status of the srcs is signalled via the gpio or interrupt circuits, as described in ?general purpose input/output? and ?interrupts?. separate clocks can be used for aif1 and aif2, allowing asynchronous operation on these interfaces. the digital mixing core is clocked by sysclk, which is linked to either aif1clk or aif2clk, as described in ?clocking and sample rates?. the digital mixing core is, therefore, always synchronised to aif1, or to aif2, or to both interfaces at once. sample rate converter 1 (src1) src1 performs sample rate conversion of digital audio data input to the WM8994. sample rate conversion is required when digital audio data is received on an audio interface that is not synchronised to the digital mixing core. src1 is automatically configured on aif1 or aif2, depending on the selected clocking and sample rate configuration. note that src1 cannot convert input data on aif1 and aif2 simultaneously. sample rate conversion on aif1 is only supported on tdm timeslot 0. the src1 lock status indicates when audio data can be received on the interface channel that is not synchronised to the digital mixing core. no audio will be present on this signal path until src1 lock is achieved. sample rate converter 2 (src2) src2 performs sample rate conversion of digital audio data output from the WM8994. sample rate conversion is required when digital audio data is transmitted on an audio interface that is not synchronised to the digital mixing core. src2 is automatically configured on aif1 or aif2, depending on the selected clocking and sample rate configuration. note that src2 cannot convert output data on aif1 and aif2 simultaneously. sample rate conversion on aif1 is only supported on tdm timeslot 0. the src2 lock status indicates when audio data can be transmitted on the interface channel that is not synchronised to the digital mixing core. no audio will be present on this signal path until src2 lock is achieved. sample rate converter restrictions the following restrictions apply to the configuration of the WM8994 sample rate converters. no src on aif1 timeslot 1. sample rate conversion on audio interface aif1 is not supported on the tdm timeslot 1. therefore, it is not possible to route digital audio between aif1 timeslot 1 and aif2, or to mix together audio from these interface paths. note that this only applies when the src is applied to aif1. maximum of three sample rates in the system. the audio sample rate of aif1 input and aif1 output may be different to each other. the audio sample rate of aif2 input and aif2 output may be different to each other. however, it is not possible to have four different sample rates operating simultaneously, as this would require sample rate conversion in too many paths. a maximum of three different sample rates can be supported in the system.
WM8994 production data w pd, april 2012, rev 4.4 206 no src capability when using 88.2khz or 96khz aif input (dac playback). if either interface is configured for 88.2khz or 96khz sample rate, then the digital mixing core must also be configured for this sample rate. sample rate conversion cannot be supported in this mode, therefore aif output is not supported at any sample rate under these conditions. restricted sample rate options when aif1 and aif2 are synchronised. when the same clock source is used for aif1clk and aif2clk, and mixed sample rates are selected on both interfaces, then the dac sample rate of one interface must be the same as the adc sample rate of the other. ? if aif1clk_src = aif2clk_src ? and aif1dac_div aif1adc_div ? and aif2dac_div aif2adc_div ? then the dac sample rate of one interface must be the same as the adc sample rate of the other. restricted sample rate options when aif1 and aif2 are not synchronised. when a different clock source is used for aif1clk and aif2clk, then the aif to which the sysclk is synchronised cannot be mixed sample rates. ? if aif1clk_src aif2clk_src ? and sysclk_src =0 ? then aif1dac_div and aif1adc_div must be set to 000 ? if aif1clk_src aif2clk_src ? and sysclk_src =1 ? then aif2dac_div and aif2adc_div must be set to 000
production data WM8994 w pd, april 2012, rev 4.4 207 sample rate converter configuration error indication the WM8994 verifies the register settings relating to clocking, sample rates and sample rate conversion. if an invalid configuration is attempted, then the sr_error register will indicate the error by showing a non-zero value. this read-only field may be checked to confirm that the WM8994 can support the selected clocking and sample rate settings. register address bit label default description r530 (0212h) rate status 3:0 sr_error [3:0] 0000 sample rate configuration status indicates an error with the register settings related to sample rate configuration 0000 = no errors 0001 = invalid sample rate 0010 = invalid aif divide 0011 = adc and dac divides both set in an interface 0100 = invalid combination of aif divides and sample-rate 0101 = invalid set of enables for 96khz mode 0110 = invalid sysclk rate (derived from aif1clk_rate or aif2clk_rate) 0111 = mixed adc and dac rates in sysclk aif when aifs are asynchronous 1000 = invalid combination of sample rates when both aifs are from the same clock source 1001 = invalid combination of mixed adc/dac aifs when both from the same clock source 1010 = aif1dac2 (timeslot 1) ports enabled when srcs connected to aif1 table 116 sample rate converter configuration status
WM8994 production data w pd, april 2012, rev 4.4 208 control interface the WM8994 is controlled by writing to its control registers. readback is available for all registers. the control interface can operate as either a 2-, 3- or 4-wire interface: ? 2-wire (i2c) mode uses pins sclk and sda ? 3-wire (spi) mode uses pins cs /addr, sclk and sda ? 4-wire (spi) mode uses pins cs /addr, sclk, sda and sdout readback is provided on the bi-directional pin sda in 2-/3-wire modes. in 4-wire mode, the sdout function must be enabled on one of the gpio pins (see ?general purpose input/output?). the WM8994 uses 15-bit register addresses and 16-bit data in all control interface modes. note that the control interface function can be suppor ted with or without system clocking. where possible, the register map access is synchronised with sysclk in order to ensure predictable operation of cross-domain functions. see ?clocking and sample rates? for further details of control interface clocking. selection of control interface mode the WM8994 control interface mode is determined by the logic level on the cifmode pin, as shown in table 117. an internal pull-down resistor is enabled by default on the cifmode pin; this can be configured using the cifmode_pd register bit described in table 118. cifmode interface format low 2 wire (i2c) mode high 3- or 4- wire (spi) modes table 117 control interface mode selection in 2-wire (i2c) control interface mode, auto-increment mode may be selected. this enables multiple write and multiple read operations to be scheduled faster than is possible with single register operations. the auto-increment option is enabled when the auto_inc register bit is set. this bit is defined in table 118. auto-increment is enabled by default. in spi modes, 3-wire or 4-wire operation may be selected using the spi_4wire register bit. in spi modes, the continuous read mode may be sele cted using the spi_contrd bit. this enables multiple register read operations to be scheduled faster than is possible with single register operations. when spi_contrd is set, the WM8994 will readback from incremental register addresses as long as cs is held low and sclk is toggled. in 3-wire (spi) mode, register readback is prov ided using the bi-directional pin sda. during data output, the sda pin can be configured as cmos or open drain, using the spi_cfg register bit. in 4-wire (spi) mode, register readback is provided using sdout. the sdout pin may be configured as cmos or as ?wired or? using the spi_cfg bit. in cmos mode, sdout is driven low when not outputting register data. in ?wired or? mode, sdout is undriven (high impedance) when not outputting register data bits.
production data WM8994 w pd, april 2012, rev 4.4 209 the control interface configuration bits are described in table 118. register address bit label default description r257 (0101h) control interface 6 spi_contrd 0 enable continuous read mode in spi (3-wire/4-wire) modes 0 = disabled 1 = enabled 5 spi_4wire 1 spi control mode select 0 = 3-wire using bidirectional sda 1 = 4-wire using sdout 4 spi_cfg 0 sda/sdout pin configuration 0 = cmos 1 = open drain (spi_4wire = 0) 1 = wired ?or? (spi_4wire = 1) 2 auto_inc 1 enables address auto-increment (applies to 2-wire i2c mode only) 0 = disabled 1 = enabled r1825 (0721h) pull control (2) 8 csnaddr_pd 1 cs/addr pull-down enable 0 = disabled 1 = enabled 2 cifmode_pd 1 cifmode pull-down enable 0 = disabled 1 = enabled table 118 control interface configuration 2-wire (i2c) control mode in 2-wire (i2c) mode, the WM8994 is a slave device on the control interface; sclk is a clock input, while sdat is a bi-directional data pin. to allow arbitration of multiple slaves (and/or multiple masters) on the same interface, the WM8994 transmits logic 1 by tri-stating the sdat pin, rather than pulling it high. an external pull-up resistor is required to pull the sdat line high so that the logic 1 can be recognised by the master. in order to allow many devices to share a single 2-wire control bus, every device on the bus has a unique 8-bit device id (this is not the same as the address of each register in the WM8994). the device id is selectable on the WM8994, using the cs /addr pin as shown in table 119. the lsb of the device id is the read/write bit; this bit is set to logic 1 for ?read? and logic 0 for ?write?. an internal pull-down resistor is enabled by default on the cs /addr pin; this can be configured using the csnaddr_pd register bit described in table 118. cs /addr device id low 0011 0100 (34h) high 0011 0110 (36h) table 119 control interface device id selection
WM8994 production data w pd, april 2012, rev 4.4 210 the WM8994 operates as a slave device only. the c ontroller indicates the start of data transfer with a high to low transition on sdat while sclk remains high. this indicates that a device id, register address and data will follow. the WM8994 responds to the start condition and shifts in the next eight bits on sdat (8-bit device id, including read/write bit, msb first). if the device id received matches the device id of the WM8994, then the WM8994 responds by pulling sdat low on the next clock pulse (ack). if the device id is not recognised or the r/w bit is set incorrectly, the WM8994 returns to the idle condition and waits for a new start condition and valid address. if the device id matches the device id of the WM8994, the data transfer continues as described below. the controller indicates the end of data transfer with a low to high transition on sdat while sclk remains high. after receiving a complete address and data sequence the WM8994 returns to the idle state and waits for another start condition. if a start or stop condition is detected out of sequence at any point during data transfer (i.e. sdat changes while sclk is high), the device returns to the idle condition. the WM8994 supports the following read and write operations: ? single write ? single read ? multiple write using auto-increment ? multiple read using auto-increment the sequence of signals associated with a single register write operation is illustrated in figure 72. figure 72 control interface 2-wire (i2c) register write the sequence of signals associated with a single register read operation is illustrated in figure 73. figure 73 control interface 2-wire (i2c) register read the control interface also supports other register operations, as listed above. the interface protocol for these operations is summarised below. the terminology used in the following figures is detailed in table 120. note that, for multiple write and multiple read operations, the auto-increment option must be enabled. this feature is enabled by default, as noted in table 118.
production data WM8994 w pd, april 2012, rev 4.4 211 terminology description s start condition sr repeated start a acknowledge (sda low) a not acknowledge (sda high) p stop condition r/w readnotwrite 0 = write 1 = read [white field] data flow from bus master to WM8994 [grey field] data flow from WM8994 to bus master table 120 control interface terminology figure 74 single register write to specified address figure 75 single register read from specified address figure 76 multiple register write to specified address using auto-increment figure 77 multiple register read from specified address using auto-increment
WM8994 production data w pd, april 2012, rev 4.4 212 figure 78 multiple register read from last address using auto-increment multiple write and multiple read operations enable the host processor to access sequential blocks of the data in the WM8994 register map faster than is possible with single register operations. the auto- increment option is enabled when the auto_inc register bit is set. this bit is defined in table 118. auto-increment is enabled by default. 3-wire (spi) control mode the 3-wire control interface uses the cs , sclk and sda pins. in 3-wire control mode, a control word consists of 32 bits. the first bit is the read/write bit (r/w), which is followed by 15 address bits (a14 to a0) that determine which control register is accessed. the remaining 16 bits (b15 to b0) are data bits, co rresponding to the 16 bits in each control register. in 3-wire mode, every rising edge of sclk clocks in one data bit from the sda pin. a rising edge on cs latches in a complete control word consisting of the last 32 bits. in write operations (r/w=0), all sda bits are driven by the controlling device. in read operations (r/w=1), the sda pin is driven by the controlling device to clock in the register address, after which the WM8994 drives the sda pin to output the applicable data bits. during data output, the sda pin can be configured as cmos or open drain, using the spi_cfg register bit, as described in table 118. in open drain configuration, an external pull-up resistor is required to pull the sda line high so that the logic 1 can be recognised by the master. when spi continuous read mode is enabled (spi_contrd = 1), the WM8994 will readback from incremental register addresses as long as cs is held low and sclk is toggled. in this mode, the WM8994 will increment the readback address after the first 32 clock cycles, and will output data from the next register address, and successive register addresses, msb first, for as long as cs is held low and sclk is toggled. an internal pull-down resistor is enabled by default on the cs /addr pin; this can be configured using the csnaddr_pd register bit described in table 118. the 3-wire control mode timing is illustrated in figure 79. figure 79 3-wire serial control interface
production data WM8994 w pd, april 2012, rev 4.4 213 4-wire (spi) control mode the 4-wire control interface uses the cs , sclk, sda and sdout pins. the sdout function must be enabled on one of the gpio pins (see ?general purpose input/output?). the data output pin, sdout, can be configured as cmos or ?wired or?, as described in table 118. in cmos mode, sdout is driven low when not outputting register data bits. in ?wired or? mode, sdout is undriven (high impedance) when not outputting register data bits. in write operations (r/w=0), this mode is the same as 3-wire mode described above. in read operations (r/w=1), the sda pin is ignored following receipt of the valid register address. sdout is driven by the WM8994. when spi continuous read mode is enabled (sp i_contrd = 1), the WM8994 will readback from incremental register addresses as long as cs is held low and sclk is toggled. in this mode, the WM8994 will increment the readback address after the first 32 clock cycles, and will output data from the next register address, and successive register addresses, msb first, for as long as cs is held low and sclk is toggled. an internal pull-down resistor is enabled by default on the cs /addr pin; this can be configured using the csnaddr_pd register bit described in table 118. the 4-wire control mode timing is illustrated in figure 80 and figure 81. figure 80 4-wire readback (cmos) figure 81 4-wire readback (wired-?or?)
WM8994 production data w pd, april 2012, rev 4.4 214 control write sequencer the control write sequencer is a programmable unit that forms part of the WM8994 control interface logic. it provides the ability to perform a sequence of register write operations with the minimum of demands on the host processor - the sequence may be initiated by a single operation from the host processor and then left to execute independently. default sequences for start-up of each output driv er and shut-down are provided (see ?default sequences? section). it is recommended that these default sequences are used unless changes become necessary. when a sequence is initiated, the sequencer performs a series of pre-defined register writes. the host processor informs the sequencer of the start index of the required sequence within the sequencer?s memory. at each step of the sequence, the contents of the selected register fields are read from the sequencer?s memory and copied into the WM8994 control registers. this continues sequentially through the sequencer?s memory until an ?end of sequence? bit is encountered; at this point, the sequencer stops and an interrupt status flag is asserted. for cases where the timing of the write sequence is important, a programmable delay can be set for specific steps within the sequence. note that the control write sequencer?s internal cloc k is derived from the internal clock sys_clk which must be enabled as described in ?clocking and sample rates?. the clock division from sys_clk is handled transparently by the WM8994 without user intervention, provided that sys_clk is configured as specified in ?clocking and sample rates?. initiating a sequence the register fields associated with running the control write sequencer are described in table 121. note that the operation of the control write sequencer also requires the internal clock sys_clk to be configured as described in ?clocking and sample rates?. the write sequencer is enabled by setting the wseq_ena bit. the start index of the required sequence must be written to the wseq_start_index field. the write sequencer stores up to 128 register write commands. these are defined in registers r12288 to r12799. there are 4 registers used to define each of the 128 possible commands. the value of wseq_start_index selects the registers applicable to the first write command in the selected sequence. setting the wseq_start bit initiates the sequencer at the given start index. the write sequencer can be interrupted by writing a logic 1 to the wseq_abort bit. the current status of the write sequencer can be read using two further register fields - when the wseq_busy bit is asserted, this indicates that the write sequencer is busy. note that, whilst the control write sequencer is running a sequence (indicated by the wseq_busy bit), normal read/write operations to the control registers cannot be supported. the index of the current step in the write sequencer can be read from the wseq_current_index field; this is an indicator of the sequencer?s progress. on completion of a sequence, this field holds the index of the last step within the last commanded sequence. when the write sequencer reaches the end of a sequence, it asserts the wseq_done_eint flag in register r1841 (see table 86). this flag can be used to generate an interrupt event on completion of the sequence. note that the wseq_done_eint flag is asserted to indicate that the wseq is not busy.
production data WM8994 w pd, april 2012, rev 4.4 215 register address bit label default description r272 (0110h) write sequencer ctrl (1) 15 wseq_ena 0 write sequencer enable. 0 = disabled 1 = enabled 9 wseq_abort 0 writing a 1 to this bit aborts the current sequence and returns control of the device back to the serial control interface. 8 wseq_start 0 writing a 1 to this bit starts the write sequencer at the index location selected by wseq_start_index. the sequence continues until it reaches an ?end of sequence? flag. at the end of the sequence, this bit will be reset by the write sequencer. 6:0 wseq_start_ index [6:0] 000_0000 sequence start index. this field determines the memory location of the first command in the selected sequence. there are 127 write sequencer ram addresses: 00h = wseq_addr0 (r12288) 01h = wseq_addr1 (r12292) 02h = wseq_addr2 (r12296) ?. 7fh = wseq_addr127 (r12796) r273 (0111h) write sequencer ctrl (2) 8 wseq_busy (read only) 0 sequencer busy flag (read only). 0 = sequencer idle 1 = sequencer busy note: it is not possible to write to control registers via the control interface while the sequencer is busy. 6:0 wseq_curre nt_index [6:0] (read only) 000_0000 sequence current index. this indicates the memory location of the most recently accessed command in the write sequencer memory. coding is the same as wseq_start_index. table 121 write sequencer control - initiating a sequence programming a sequence a sequence consists of write operations to data bits (o r groups of bits) within the control registers. each write operation is defined by a block of 4 registers, which contain 6 fields as described in this section. the block of 4 registers is the same for up to 128 steps held in the sequencer memory. multiple sequences can be held in the memory at the same time; each sequence occupies its own range within the 128 available register blocks. the following 6 fields are replicated 128 times - one for each of the sequencer?s 128 steps. in the following descriptions, the term ? n ? is used to denote the step number, from 0 to 127. wseq_addr n is a 14-bit field containing the control r egister address in which the data should be written. wseq_data n is an 8-bit field which contains the data to be written to the selected control register. the wseq_data_width n field determines how many of these bits are written to the selected register; the most significant bits (above the number indicated by wseq_data_width n ) are ignored.
WM8994 production data w pd, april 2012, rev 4.4 216 wseq_data_start n is a 4-bit field which identifies the lsb position within the selected control register to which the data should be written. for example, setting wseq_data_start n = 0100 will select bit 4 as the lsb position; in this case, 4-bit data would be written to bits 7:4. wseq_data_width n is a 3-bit field which identifies the width of the data block to be written. this enables selected portions of a control register to be updated without any concern for other bits within the same register, eliminating the need for read-modify-write procedures. values of 0 to 7 correspond to data widths of 1 to 8 respectively. for example, setting wseq_data_width n = 010 will cause a 3-bit data block to be written. note that the maximum value of this field corresponds to an 8-bit data block; writing to register fields greater than 8 bits wide must be performed using two separate operations of the control write sequencer. wseq_delay n is a 4-bit field which controls the waiting time between the current step and the next step in the sequence i.e. the delay occurs after the write in which it was called. the total delay time per step (including execution) is defined below, gi ving a useful range of execution/delay times from 562 ? s up to 2.048s per step: t = k (2 wseq_delay + 8) where k = 62.5 ? s (under recommended operating conditions) wseq_eos n is a 1-bit field which indicates the end of sequence. if this bit is set, then the control write sequencer will automatically stop after this step has been executed. the register definitions for step 0 are described in table 122. the equivalent definitions also apply to step 1 through to step 127, in the subsequent register address locations. register address bit label default description r12288 (3000h) write sequencer 0 13:0 wseq_addr 0 [13:0] 0000h control register address to be written to in this sequence step. r12289 (3001h) write sequencer 1 7:0 wseq_data 0 [7:0] 00h data to be written in this sequence step. when the data width is less than 8 bits, then one or more of the msbs of wseq_data n are ignored. it is recommended that unused bits be set to 0. r12290 (3002h) write sequencer 2 10:8 wseq_data _width0 [2:0] 000 width of the data block written in this sequence step. 000 = 1 bit 001 = 2 bits 010 = 3 bits 011 = 4 bits 100 = 5 bits 101 = 6 bits 110 = 7 bits 111 = 8 bits 3:0 wseq_data _start0 [3:0] 0000 bit position of the lsb of the data block written in this sequence step. 0000 = bit 0 ? 1111 = bit 15 r12291 (3003h) write sequencer 3 8 wseq_eos0 0 end of sequence flag. this bit indicates whether the control write sequencer should stop after executing this step. 0 = not end of sequence 1 = end of sequence (stop the sequencer after this step). 3:0 wseq_dela y0 [3:0] 0000 time delay after executing this step. total time per step (including execution) = 62.5s (2 wseq_delay + 8) table 122 write sequencer control - programming a sequence
production data WM8994 w pd, april 2012, rev 4.4 217 note that a ?dummy? write can be inserted into a control sequence by commanding the sequencer to write a value of 0 to bit 0 of register r255 (00ffh). this is effectively a write to a non-existent register location. this can be used in order to create placeholders ready for easy adaptation of a control sequence. for example, a sequence coul d be defined to power-up a mono signal path from dacl to headphone, with a ?dummy? write included to leave space for easy modification to a stereo signal path configuration. dummy writes can also be used in order to implement additional time delays between register writes. dummy writes are included in both of the headphone start-up sequences - see table 123 and table 124. in summary, the control register to be written is set by the wseq_addr n field. the data bits that are written are determined by a combination of wseq_data_start n , wseq_data_width n and wseq_data n . this is illustrated below for an example case of writing to the vmid_sel field within register r1 (0001h). in this example, the start position is bit 01 (wseq_data_start n = 0001b) and the data width is 2 bits (wseq_data_width n = 0001b). with these settings, the control write sequencer would update the control register r1 [2:1] with the contents of wseq_data n [1:0]. figure 82 control write sequencer example
WM8994 production data w pd, april 2012, rev 4.4 218 default sequences when the WM8994 is powered up, a number of control write sequences are available through default settings in the sequencer memory locations. the pre-programmed default settings include start-up and shut-down sequences for each of the output drivers. note that the default sequences do not include audio signal path or gain setting configuration; this must be implemented prior to scheduling any of the default start-up sequences. the entire sequencer memory may be programmed to users? own settings at any time, as described in ?programming a sequence?. users? own settings remain in memory regardless of wseq_ena, and are not affected by software resets (i.e. writing to register r0). however, any non-default sequences are lost when the device is powered down. the following default control sequences are provided: 1. headphone cold start-up - this sequence powers up the headphone driver and charge pump. it commands the dc servo to perform offset correction. it enables the master bias required for analogue functions. this sequence is intended for enabling the headphone output after initial power-on, when dc offset correction has not previously been run. 2. headphone warm start-up - this sequence is similar to the headphone cold start-up, but does not include the dc servo operation. this sequence is intended for fast enabling of the headphone output when dc offset correction has previously been scheduled and provided the analogue gain settings have not been updated since scheduling the dc offset correction. 3. speaker start-up - this sequence powers up the stereo speaker driver. it also enables the master bias required for analogue functions. 4. earpiece start-up - this sequence powers up the earpiece driver. it also enables the master bias required for analogue functions. the soft-start vmid option is used in order to suppress pops when the driver is enabled. this sequence is intended for enabling the earpiece driver when the master bias has not previously been enabled. 5. line output start-up - this sequence powers up the line outputs. active discharge of the line outputs is selected, followed by the soft-start vmid enable, followed by selection of the master bias and un-muting of the line outputs. this sequence is intended for enabling the line drivers when the master bias has not previously been enabled. 6. speaker and headphone fast shut-down - this sequence implements a fast shutdown of the speaker and headphone drivers. it also disables the dc servo and charge pump circuits, and disables the analogue bias circuits using the s oft-start (ramp) feature. this sequence is intended as a shut-down sequence when only the speaker or headphone drivers are enabled. 7. generic shut-down - this sequence shuts down all of the WM8994 output drivers, dc servo, charge pump and analogue bias circuits. it is similar to the fast shut-down sequence, with the additional control of the earpiece and line output drivers. active discharge of the line outputs is included and all drivers are disabled as part of this sequence. specific details of each of these sequences is provided below. headphone cold start-up the headphone cold start-up sequence is initiated by writing 8100h to register 272 (0110h). this single operation starts the control write sequencer at index address 0 (00h) and executes the sequence defined in table 123. this sequence takes approximately 296ms to run.
production data WM8994 w pd, april 2012, rev 4.4 219 wseq index register address width start data delay eos description 0 (00h) r57 (0039h) 5 bits bit 2 1bh 0h 0b startup_bias_ena = 1 vmid_buf_ena = 1 vmid_ramp[1:0] = 11b (delay = 0.5625ms) 1 (01h) r1 (0001h) 3 bits bit 0 03h 9h 0b bias_ena = 1 vmid_sel[1:0] = 01b (delay = 32.5ms) 2 (02h) r76 (004ch) 1 bit bit 15 01h 6h 0b cp_ena = 1 (delay = 4.5ms) 3 (03h) r1 (0001h) 2 bits bit 8 03h 0h 0b hpout1r_ena = 1 hpout1l_ena = 1 (delay = 0.5625ms) 4 (04h) r96 (0060h) 5 bits bit 1 11h 0h 0b hpout1r_dly = 1 hpout1l_dly = 1 (delay = 0.5625ms) 5 (05h) r84 (0054h) 6 bits bit 0 33h ch 0b dcs_ena_chan_0 = 1 dcs_ena_chan_1 = 1 dcs_trig_startup_0 = 1 dcs_trig_startup_1 = 1 (delay = 256.5ms) 6 (06h) r255 (00ffh) 1 bit bit 0 00h 0h 0b dummy write for expansion (delay = 0.5625ms) 7 (07h) r96 (0060h) 6 bits bit 2 3bh 0h 1b hpout1r_outp = 1 hpout1r_rmv_short =1 hpout1_dly = 1 hpout1l_outp = 1 hpout1l_rmv_short = 1 (delay = 0.5625ms) table 123 headphone cold start-up default sequence headphone warm start-up the headphone warm start-up sequence can be initiated by writing 8108h to register 272 (0110h). this single operation starts the control write sequencer at index address 8 (08h) and executes the sequence defined in table 124. this sequence takes approximately 40ms to run. wseq index register address width start data delay eos description 8 (08h) r57 (0039h) 5 bits bit 2 1bh 0h 0b startup_bias_ena = 1 vmid_buf_ena = 1 vmid_ramp[1:0] = 11b (delay = 0.5625ms) 9 (09h) r1 (0001h) 3 bits bit 0 03h 9h 0b bias_ena = 1 vmid_sel[1:0] = 01b (delay = 32.5ms) 10 (0ah) r76 (004ch) 1 bits bit 15 01h 6h 0b cp_ena = 1 (delay = 4.5ms) 11 (0bh) r1 (0001h) 2 bits bit 8 03h 0h 0b hpout1r_ena = 1 hpout1l_ena = 1 (delay = 0.5625ms)
WM8994 production data w pd, april 2012, rev 4.4 220 wseq index register address width start data delay eos description 12 (0ch) r96 (0060h) 5 bits bit 1 11h 0h 0b hpout1r_dly = 1 hpout1l_dly = 1 (delay = 0.5625ms) 13 (0dh) r84 (0054h) 2 bits bi t 0 03h 0h 0b dcs_ena_chan_0 = 1 dcs_ena_chan_1 = 1 (delay = 0.5625ms) 14 (0eh) r255 (00ffh) 1 bits bit 0 00h 0h 0b dummy write for expansion (delay = 0.5625ms) 15 (0fh) r96 (0060h) 6 bits bit 2 3bh 0h 1b hpout1r_outp = 1 hpout1r_rmv_short =1 hpout1_dly = 1 hpout1l_outp = 1 hpout1l_rmv_short = 1 (delay = 0.5625ms) table 124 headphone warm start-up default sequence speaker start-up the speaker start-up sequence can be initiated by writing 8110h to register 272 (0110h). this single operation starts the control write sequencer at index address 16 (10h) and executes the sequence defined in table 125. this sequence takes approximately 34ms to run. wseq index register address width start data delay eos description 16 (10h) r57 (39h) 5 bits bit 2 1bh 0h 0b startup_bias_ena = 1 vmid_buf_ena = 1 vmid_ramp[1:0] = 11b (delay = 0.5625ms) 17 (11h) r1 (01h) 3 bits bit 0 03h 9h 0b bias_ena = 1 vmid_sel[1:0] = 01b (delay = 32.5ms) 18 (12h) r1 (01h) 2 bits bit 12 03h 0h 1b spkoutl_ena = 1 spkoutr_ena = 1 (delay = 0.5625ms) table 125 speaker start-up default sequence earpiece start-up the earpiece start-up sequence can be initiated by writing 8113h to register 272 (0110h). this single operation starts the control write sequencer at index address 19 (13h) and executes the sequence defined in table 126. this sequence takes approximately 259ms to run.
production data WM8994 w pd, april 2012, rev 4.4 221 wseq index register address width start data delay eos description 19 (13h) r57 (39h) 6 bits bit 1 27h 0h 0b bias_src = 1 startup_bias_ena = 1 vmid_buf_ena = 1 vmid_ramp[1:0] = 10b (delay = 0.5625ms) 20 (14h) r56 (38h) 1 bit bit 6 01h 0h 0b hpout2_in_ena = 1 (delay = 0.5625ms) 21 (15h) r31 (1fh) 1 bit bit 5 00h 0h 1b hpout2_mute = 0 (delay = 0.5625ms) 22 (16h) r1 (01h) 1 bit bit 11 01h 0h 0b hpout2_ena = 1 (delay = 0.5625ms) 23 (17h) r1 (01h) 3 bits bit 0 03h ch 0b bias_ena = 1 vmid_sel[1:0] = 01b (delay = 256.5ms) 24 (18h) r57 (39h) 1 bit bit 1 00h 0h 0b bias_src = 0 (delay = 0.5625ms) table 126 earpiece start-up default sequence line output start-up the line output start-up sequence can be initiated by writing 8119h to register 272 (0110h). this single operation starts the control write sequencer at index address 25 (19h) and executes the sequence defined in table 127. this sequence takes approximately 517ms to run. wseq index register address width start data delay eos description 25 (19h) r56 (38h) 2 bits bit 4 03h 0h 0b lineout2_disch = 1 lineout1_disch = 1 (delay = 0.5625ms) 26 (1ah) r57 (39h) 6 bits bit 1 27h 0h 0b bias_src = 1 startup_bias_ena = 1 vmid_buf_ena = 1 vmid_ramp[1:0] = 10b (delay = 0.5625ms) 27 (1bh) r56 (38h) 1 bit bit 7 01h 0h 0b lineout_vmid_buf_ena = 1 (delay = 0.5625ms) 28 (1ch) r3 (03h) 4 bits bit 10 0fh 0h 0b lineout2p_ena = 1 lineout2n_ena = 1 lineout1p_ena = 1 lineout1n_ena = 1 (delay = 0.5625ms) 29 (1dh) r56 (38h) 2 bits bit 4 00h 0h 0b lineout2_disch = 0 lineout1_disch = 0 (delay = 0.5625ms) 30 (1eh) r1 (01h) 3 bits bit 0 03h dh 0b bias_ena = 1 vmid_sel = 01b (delay = 512.5ms) 31 (1fh) r57 (39h) 1 bit bit 1 00h 0h 0b bias_src = 0 (delay = 0.5625ms) 32 (20h) r30 (1eh) 2 bits bit 5 00h 0h 0b lineout1p_mute = 0 lineout1n_mute = 0 (delay = 0.5625ms)
WM8994 production data w pd, april 2012, rev 4.4 222 wseq index register address width start data delay eos description 33 (21h) r30 (1eh) 2 bits bit 1 00h 0h 1b lineout2p_mute = 0 lineout2n_mute = 0 (delay = 0.5625ms) table 127 line output start-up default sequence speaker and headphone fast shut-down the speaker and headphone fast shut-down sequence can be initiated by writing 8122h to register 272 (0110h). this single operation starts the control write sequencer at index address 34 (22h) and executes the sequence defined in table 128. this sequence takes approximately 37ms to run. wseq index register address width start data delay eos description 34 (22h) r96 (60h) 7 bits bit 1 00h 0h 0b hpout1r_dly = 0 hpout1r_outp = 0 hpout1r_rmv_short = 0 hpout1l_dly = 0 hpout1l_outp = 0 hpout1l_rmv_short = 0 (delay = 0.5625ms) 35 (23h) r84 (54h) 2 bits bi t 0 00h 0h 0b dcs_ena_chan_0 = 0 dcs_ena_chan_1 = 0 (delay = 0.5625ms) 36 (24h) r1 (01h) 2 bits bit 8 00h 0h 0b hpout1r_ena = 0 hpout1l_ena = 0 (delay = 0.5625ms) 37 (25h) r76 (4ch) 1 bit bit 15 00h 0h 0b cp_ena = 0 (delay = 0.5625ms) 38 (26h) r1 (01h) 2 bits bit 12 00h 0h 0b spkoutl_ena = 0 spkoutr_ena = 0 (delay = 0.5625ms) 39 (27h) r57 (39h) 6 bits bit 1 37h 0h 0b bias_src = 1 startup_bias_ena = 1 vmid_buf_ena = 1 vmid_ramp[1:0] = 11b (delay = 0.5625ms) 40 (28h) r1 (01h) 3 bits bit 0 00h 9h 0b bias_ena = 0 vmid_sel = 00b (delay = 32.5ms) 41 (29h) r57 (39h) 6 bits bit 1 00h 0h 1b bias_src = 0 startup_bias_ena = 0 vmid_buf_ena = 0 vmid_ramp[1:0] = 00b (delay = 0.5625ms) table 128 speaker and headphone fast shut-down default sequence
production data WM8994 w pd, april 2012, rev 4.4 223 generic shut-down the generic shut-down sequence can be initiated by writing 812ah to register 272 (0110h). this single operation starts the control write sequencer at index address 42 (2ah) and executes the sequence defined in table 129. this sequence takes approximately 522ms to run. wseq index register address width start data delay eos description 42 (2ah) r31 (1fh) 1 bit bit 5 01h 0h 0b hpout2_mute = 1 (delay = 0.5625ms) 43 (2bh) r30 (1eh) 6 bits bit 1 33h 0h 0b lineout2p_mute = 1 lineout2n_mute = 1 lineout1p_mute = 1 lineout1n_mute = 1 (delay = 0.5625ms) 44 (2ch) r96 (60h) 7 bits bit 1 00h 0h 0b hpout1r_dly = 0 hpout1r_outp = 0 hpout1r_rmv_short = 0 hpout1l_dly = 0 hpout1l_outp = 0 hpout1l_rmv_short = 0 (delay = 0.5625ms) 45 (2dh) r84 (54h) 2 bits bit 0 00h 0h 0b dcs_ena_chan_0 = 0 dcs_ena_chan_1 = 0 (delay = 0.5625ms) 46 (2eh) r1 (01h) 2 bits bit 8 00h 0h 0b hpout1r_ena = 0 hpout1l_ena = 0 (delay = 0.5625ms) 47 (2fh) r76 (4ch) 1 bit bit 15 00h 0h 0b cp_ena = 0 (delay = 0.5625ms) 48 (30h) r1 (01h) 2 bits bit 12 00h 0h 0b spkoutl_ena = 0 spkoutr_ena = 0 (delay = 0.5625ms) 49 (31h) r57 (39h) 6 bits bit 1 17h 0h 0b bias_src = 1 startup_bias_ena = 1 vmid_buf_ena = 1 vmid_ramp[1:0] = 01b (delay = 0.5625ms) 50 (32h) r1 (01h) 3 bits bit 0 00h dh 0b bias_ena = 0 vmid_sel = 00b (delay = 512.5ms) 51 (33h) r1 (01h) 1 bit bit 11 00h 0h 0b hpout2_ena = 0 (delay = 0.5625ms) 52 (34h) r56 (38h) 2 bits bit 4 03h 0h 0b lineout2_disch = 1 lineout1_disch = 1 (delay = 0.5625ms) 53 (35h) r55 (37h) 1 bit bit 0 01h 0h 0b vroi = 1 (delay = 0.5625ms) 54 (36h) r56 (38h) 1 bit bit 6 00h 0h 0b hpout2_in_ena =0 (delay = 0.5625ms) 55 (37h) r3 (03h) 4 bits bit 10 00h 0h 0b lineout2p_ena = 0 lineout2n_ena = 0 lineout1p_ena = 0 lineout1n_ena = 0 (delay = 0.5625ms)
WM8994 production data w pd, april 2012, rev 4.4 224 wseq index register address width start data delay eos description 56 (38h) r56 (38h) 1 bit bit 7 00h 0h 0b lineout_vmid_buf_ena = 0 (delay = 0.5625ms) 57 (39h) r55 (37h) 1 bit bit 0 00h 0h 0b vroi = 0 (delay = 0.5625ms) 58 (3ah) r57 (39h) 6 bits bit 1 00h 0h 1b bias_src = 0 startup_bias_ena = 0 vmid_buf_ena = 0 vmid_ramp[1:0] = 00b (delay = 0.5625ms) table 129 generic shut-down default sequence ldo regulators the WM8994 provides two integrated low drop-out regulators (ldos). these are provided to generate the appropriate power supplies for internal circuits, simplifying and reducing the requirements for external supplies and associated components. a reference circuit powered by avdd2 ensures the accuracy of the ldo regulator voltage settings. note that the integrated ldos are only intended for generating the avdd1 and dcvdd supply rails for the WM8994; they are not suitable for powering any additional or external loads. ldo1 is intended for generating avdd1 - the primary analogue power domain of the WM8994. ldo1 is powered by ldo1vdd and is enabled when a logic ?1? is applied to the ldo1ena pin. the logic level is determined with respect to the dbvdd voltage domain. the ldo1 start-up time is dependent on the external avdd1 and vrefc capacitors; the start-up time is illustrated in figure 84 and defined in table 130 for the recommended external component conditions. when ldo1 is enabled, the output voltage is controll ed by the ldo1_vsel register field. note that the ldo1 voltage difference ldo1vdd - avdd1 must be higher than the ldo1 drop-out voltage (see ?electrical characteristics?). ldo1 is disabled when a logic ?0? is applied to the ldo1ena pin. after ldo1 has been disabled, there is a minimum delay, defined as the ldo1 cycle time, during which ldo1 should not be re- enabled. the ldo1 cycle time is illustrated in figure 84 and defined in table 130 for the recommended external component conditions. when ldo1 is disabled, the output can be left fl oating or can be actively discharged, depending on the ldo1_disch control bit. it is possible to supply avdd1 from an external s upply. if avdd1 is supplied externally, then ldo1 should be disabled, and the ldo1 output left floating (ldo1disch = 0). note that the ldo1vdd voltage must be greater than or equal to avdd1; this ensures that there is no leakage path through the ldo for the external supply. note that the WM8994 can operate with avdd1 tied to 0v; power consumption may be reduced, but the analogue audio functions will not be supported. ldo2 is intended for generating the dcvdd power dom ain which supplies the digital core functions on the WM8994. ldo2 is powered by ldo2vdd and is enabled when a logic ?1? is applied to the ldo2ena pin. the logic level is determined with respect to the dbvdd voltage domain. the ldo2 start-up time is dependent on the external dcvdd and vrefc capacitors; the start-up time is illustrated in figure 84 and defined in table 130 for the recommended external component conditions. when ldo2 is enabled, the output voltage is controlled by the ldo2_vsel register field. ldo2 is disabled when a logic ?0? is applied to the ldo2ena pin. after ldo2 has been disabled, there is a minimum delay, defined as the ldo2 cycle time, during which ldo2 should not be re- enabled. the ldo2 cycle time is illustrated in figure 84 and defined in table 130 for the recommended external component conditions.
production data WM8994 w pd, april 2012, rev 4.4 225 when ldo2 is disabled, the output can be left fl oating or can be actively discharged, depending on the ldo2_disch control bit. it is possible to supply dcvdd from an exter nal supply. if dcvdd is supplied externally, the ldo2ena and ldo2disch bits should be set to 0. note that the dbvdd voltage must be greater than or equal to dcvdd; this ensures that there is no leakage path through the ldo for the external supply. an internal pull-down resistor is enabled by defaul t on the ldo1ena and ldo2ena pins. these pull- down resistors can be configured using the register bits described in table 131. decoupling capacitors should be connected to the voltage reference pin, vrefc, and also to the ldo outputs, avdd1 and dcvdd. see ?applications information? for further details. the ldo regulator connections and controls are illustrated in figure 83. the register controls are defined in table 131. avdd2 vrefc voltage reference ldo1vdd ldo1 avdd1 ldo2vdd ldo2 dcvdd WM8994 digital core supply WM8994 analogue supply ldo1ena ldo2ena ldo1_vsel[2:0] ldo1_disch ldo2_vsel[1:0] ldo2_disch figure 83 ldo regulators figure 84 ldo enable/disable timing diagram
WM8994 production data w pd, april 2012, rev 4.4 226 parameter symbol condition min typ max units ldo1 start-up time t ldo1_start vrefc cap = 1 uf avdd1 cap = 4.7uf 1.5 ms ldo1 cycle time t ldo1_cycle 36 ms ldo2 start-up time t ldo2_start vrefc cap = 1 uf dcvdd cap = 1uf 1.5 ms ldo2 cycle time t ldo2_cycle 36 ms table 130 ldo timing register address bit label default description r59 (003bh) ldo 1 3:1 ldo1_vsel [2:0] 110 ldo1 output voltage select 2.4v to 3.1v in 100mv steps 000 = 2.4v 001 = 2.5v 010 = 2.6v 011 = 2.7v 100 = 2.8v 101 = 2.9v 110 = 3.0v 111 = 3.1v 0 ldo1_disch 1 ldo1 discharge select 0 = ldo1 floating when disabled 1 = ldo1 discharged when disabled r60 (003ch) ldo 2 2:1 ldo2_vsel [1:0] 01 ldo2 output voltage select 0.9v to 1.2v in 100mv steps 00 = 0.9v 01 = 1.0v 10 = 1.1v 11 = 1.2v 0 ldo2_disch 1 ldo2 discharge select 0 = ldo2 floating when disabled 1 = ldo2 discharged when disabled r1825 (0721h) pull control (2) 6 ldo2ena_pd 1 ldo2ena pull-down enable 0 = disabled 1 = enabled 4 ldo1ena_pd 1 ldo1ena pull-down enable 0 = disabled 1 = enabled table 131 ldo regulator control
production data WM8994 w pd, april 2012, rev 4.4 227 pop suppression control the WM8994 incorporates a number of features, including wolfson?s silentswitch? technology, designed to suppress pops normally associated with start-up, shut-down or signal path control. to achieve maximum benefit from these features, careful attention is required to the sequence and timing of these controls. note that, under the recommended usage conditions of the WM8994, these features will be configured by running the default star t-up and shut-down sequences as described in the ?control write sequencer? section. in these cases, the user does not need to set these register fields directly. the pop suppression controls relating to the headphone / line output drivers are described in the ?analogue output signal path? section. additional bias controls, also pre-programmed into control write sequencer, are described in the ?reference voltages and master bias? section. disabled line output control the line outputs are biased to vmid in normal oper ation. to avoid audible pops caused by a disabled signal path dropping to agnd, the WM8994 can maintain these connections at vmid when the relevant output stage is disabled. this is achieved by connecting a buffered vmid reference to the output. the buffered vmid reference is enabled by setting vmid_buf_ena. the output resistance is selectable, using the vroi register bit. note that, if lineoutn_disch=1 (see table 133), then the respective output will be discharged to agnd, and will not be connected to vmid. register address bit label default description r55 (0037h) additional control 0 vroi 0 buffered vmid to analogue line output resistance (disabled outputs) 0 = 20k ? from buffered vmid to output 1 = 500 ? from buffered vmid to output r57 (0039h) antipop (2) 3 vmid_buf _ena 0 vmid buffer enable 0 = disabled 1 = enabled (provided vmid_sel > 00) table 132 disabled line output control
WM8994 production data w pd, april 2012, rev 4.4 228 line output discharge control the line output paths can be actively discharged to agnd through internal resistors if desired. this is desirable at start-up in order to achieve a known output stage condition prior to enabling the soft-start vmid reference voltage. this is also desirable in shut-down to prevent the external connections from being affected by the internal circuits. the line outputs lineout1p and lineout1n are discharged to agnd by setting lineout1_disch. the line outputs lineout2p and lineout2n are discharged to agnd by setting lineout2_disch. the discharge resistance is dependent upon the respec tive lineoutn_ena bit, and also according to the vroi bit (see table 132). the discharge resistance is noted in the ?electrical characteristics? section. register address bit label default description r56 (0038h) antipop (1) 5 lineout1_disc h 0 discharges lineout1p and lineout1n outputs 0 = not active 1 = actively discharging lineout1p and lineout1n 4 lineout2_disc h 0 discharges lineout2p and lineout2n outputs 0 = not active 1 = actively discharging lineout2p and lineout2n table 133 line output discharge control vmid reference discharge control the vmid reference can be actively discharged to ag nd through internal resistors. this is desirable at start-up in order to achieve a known initial c ondition prior to enabling the soft-start vmid reference; this ensures maximum suppression of audible pops as sociated with start-up. vmid is discharged by setting vmid_disch. register address bit label default description r57 (0039h) antipop (2) 0 vmid_disch 0 connects vmid to ground 0 = disabled 1 = enabled table 134 vmid reference discharge control input vmid clamps the analogue inputs can be clamped to vmid using the inputs_clamp bit described below. this allows pre-charging of the input ac coupling capacitors during power-up. note that all eight inputs are clamped using the same control bit. note that inputs_clamp must be set to 0 when the analogue input signal paths are in use. register address bit label default description r21 (15h) input mixer (1) 6 inputs_clamp 0 input pad vmid clamp 0 = clamp de-activated 1 = clamp activated table 135 input vmid clamps
production data WM8994 w pd, april 2012, rev 4.4 229 reference voltages and master bias this section describes the analogue reference voltage and bias current controls. it also describes the vmid soft-start circuit for pop suppressed start-up and shut-down. the analogue circuits in the WM8994 require a mid-rail analogue reference voltage, vmid. this reference is generated from avdd1 via a programmable resistor chain. together with the external vmid decoupling capacitor, the programmable resis tor chain determines the charging characteristic on vmid. this is controlled by vmid_sel[1:0], and can be used to optimise the reference for normal operation or low power standby as described in table 136. a buffered mid-rail reference voltage is provided. this is required for the single-ended configuration of the input pgas, and also for direct signal paths from the input pins to the input mixers, output mixers or speaker mixers. these requirements are noted in the relevant ?analogue input signal path? and ?analogue output signal path? sections. the buffered mid-rail reference is enabled by setting the vmid_buf_ena register bit. the analogue circuits in the WM8994 require a bias current. the normal bias current is enabled by setting bias_ena. note that the normal bias current source requires vmid to be enabled also. register address bit label default description r1 (0001h) power management (1) 2:1 vmid_sel [1:0] 00 vmid divider enable and select 00 = vmid disabled (for off mode) 01 = 2 x 40k ? divider (for normal operation) 10 = 2 x 240k ? divider (for low power standby) 11 = reserved 0 bias_ena 0 enables the normal bias current generator (for all analogue functions) 0 = disabled 1 = enabled r57 (0039h) antipop (2) 3 vmid_buf_ ena 0 vmid buffer enable 0 = disabled 1 = enabled (provided vmid_sel > 00) table 136 reference voltages and master bias enable a pop-suppressed start-up requires vmid to be enabled smoothly, without the step change normally associated with the initial stage of the vmid capacitor charging. a pop-suppressed start-up also requires the analogue bias current to be enabled throughout the signal path prior to the vmid reference voltage being applied. the WM8994 incorpor ates pop-suppression circuits which address these requirements. an alternate bias current source (start-up bias) is provided for pop-free start-up; this is enabled by the startup_bias_ena register bit. the start-up bias is selected (in place of the normal bias) using the bias_src bit. it is recommended that the start-up bias is used during start-up, before switching back to the higher quality, normal bias. a soft-start circuit is provided in order to control the switch-on of the vmid reference. the soft-start control circuit offers two slew rates for enabling the vmid reference; these are selected and enabled by vmid_ramp. when the soft-start circuit is enabled prior to enabling vmid_sel, the reference voltage rises smoothly, without the step change that would otherwise occur. it is recommended that the soft-start circuit and the output signal path be enabled before vmid is enabled by vmid_sel. a soft shut-down is provided, using the soft-star t control circuit and the start-up bias current generator. the soft shut-down of vmid is achieved by setting vmid_ramp, startup_bias_ena and bias_src to select the start-up bias current and soft-start circuit prior to setting vmid_sel=00. note that, if the vmid_ramp function is enabled for s oft start-up or soft shut-down then, after setting vmid_sel = 00 to disable vmid, the soft-start circuit must be reset before re-enabling vmid. the soft-start circuit is reset by setting vmid_ram p = 00. after resetting the soft-start circuit, the vmid_ramp register may be updated to the required setting for the next vmid transition. the vmid soft-start register controls are defined in table 137.
WM8994 production data w pd, april 2012, rev 4.4 230 register address bit label default description r57 (0039h) antipop (2) 6:5 vmid_ramp [1:0] 10 vmid soft start enable / slew rate control 00 = normal slow start 01 = normal fast start 10 = soft slow start 11 = soft fast start if vmid_ramp = 1x is selected for vmid start-up or shut-down, then the soft-start circuit must be reset by setting vmid_ramp=00 after vmid is disabled, before vmid is re-enabled. vmid is disabled / enabled using the vmid_sel register. 2 startup_bias_ ena 0 enables the start-up bias current generator 0 = disabled 1 = enabled 1 bias_src 1 selects the bias current source 0 = normal bias 1 = start-up bias table 137 soft start control power management the WM8994 has control registers that allow users to select which functions are active. for minimum power consumption, unused functions should be disabled. to minimise pop or click noise, it is important to enable or disable functions in the correct order. see ?control write sequencer? for details of recommended control sequences. register address bit label default description r1 (0001h) power management (1) 13 spkoutr_ena 0 spkmixr mixer, spkrvol pga and spkoutr output enable 0 = disabled 1 = enabled 12 spkoutl_ena 0 spkmixl mixer, spklvol pga and spkoutl output enable 0 = disabled 1 = enabled 11 hpout2_ena 0 hpout2 and hpout2mix enable 0 = disabled 1 = enabled 9 hpout1l_ena 0 enables hpout1l input stage 0 = disabled 1 = enabled 8 hpout1r_ena 0 enables hpout1r input stage 0 = disabled 1 = enabled 5 micb2_ena 0 microphone bias 2 enable 0 = disabled 1 = enabled 4 micb1_ena 0 microphone bias 1 enable 0 = disabled 1 = enabled 2:1 vmid_sel [1:0] 00 vmid divider enable and select 00 = vmid disabled (for off mode)
production data WM8994 w pd, april 2012, rev 4.4 231 register address bit label default description 01 = 2 x 40k ? divider (normal mode) 10 = 2 x 240k ? divider (standby mode) 11 = reserved 0 bias_ena 0 enables the normal bias current generator (for all analogue functions) 0 = disabled 1 = enabled r2 (0002h) power management (2) 14 tshut_ena 1 thermal sensor enable 0 = disabled 1 = enabled 13 tshut_opdis 1 thermal shutdown control (causes audio outputs to be disabled if an over-temperature occurs. the thermal sensor must also be enabled.) 0 = disabled 1 = enabled 11 opclk_ena 0 gpio clock output (opclk) enable 0 = disabled 1 = enabled 9 mixinl_ena 0 left input mixer enable (enables mixinl and rxvoice input to mixinl) 0 = disabled 1 = enabled 8 mixinr_ena 0 right input mixer enable (enables mixinr and rxvoice input to mixinr) 0 = disabled 1 = enabled 7 in2l_ena 0 in2l input pga enable 0 = disabled 1 = enabled 6 in1l_ena 0 in1l input pga enable 0 = disabled 1 = enabled 5 in2r_ena 0 in2r input pga enable 0 = disabled 1 = enabled 4 in1r_ena 0 in1r input pga enable 0 = disabled 1 = enabled r3 (0003h) power management (3) 13 lineout1n_ena 0 lineout1n line out and lineout1nmix enable 0 = disabled 1 = enabled 12 lineout1p_ena 0 lineout1p line out and lineout1pmix enable 0 = disabled 1 = enabled 11 lineout2n_ena 0 lineout2n line out and lineout2nmix enable 0 = disabled 1 = enabled 10 lineout2p_ena 0 lineout2p line out and lineout2pmix enable
WM8994 production data w pd, april 2012, rev 4.4 232 register address bit label default description 0 = disabled 1 = enabled 9 spkrvol_ena 0 spkmixr mixer and spkrvol pga enable 0 = disabled 1 = enabled note that spkmixr and spkrvol are also enabled when spkoutr_ena is set. 8 spklvol_ena 0 spkmixl mixer and spklvol pga enable 0 = disabled 1 = enabled note that spkmixl and spklvol are also enabled when spkoutl_ena is set. 7 mixoutlvol_e na 0 mixoutl left volume control enable 0 = disabled 1 = enabled 6 mixoutrvol_e na 0 mixoutr right volume control enable 0 = disabled 1 = enabled 5 mixoutl_ena 0 mixoutl left output mixer enable 0 = disabled 1 = enabled 4 mixoutr_ena 0 mixoutr right output mixer enable 0 = disabled 1 = enabled r4 (0004h) power management (4) 13 aif2adcl_ena 0 enable aif2adc (left) output path 0 = disabled 1 = enabled 12 aif2adcr_ena 0 enable aif2adc (right) output path 0 = disabled 1 = enabled 11 aif1adc2l_ena 0 enable aif1adc2 (left) output path (aif1, timeslot 1) 0 = disabled 1 = enabled 10 aif1adc2r_ena 0 enable aif1adc2 (right) output path (aif1, timeslot 1) 0 = disabled 1 = enabled 9 aif1adc1l_ena 0 enable aif1adc1 (left) output path (aif1, timeslot 0) 0 = disabled 1 = enabled 8 aif1adc1l_ena 0 enable aif1adc1 (right) output path (aif1, timeslot 0) 0 = disabled 1 = enabled 5 dmic2l_ena 0 digital microphone dmicdat2 left channel enable 0 = disabled 1 = enabled 4 dmic2r_ena 0 digital microphone dmicdat2 right
production data WM8994 w pd, april 2012, rev 4.4 233 register address bit label default description channel enable 0 = disabled 1 = enabled 3 dmic1l_ena 0 digital microphone dmicdat1 left channel enable 0 = disabled 1 = enabled 2 dmic1r_ena 0 digital microphone dmicdat1 right channel enable 0 = disabled 1 = enabled 1 adcl_ena 0 left adc enable 0 = adc disabled 1 = adc enabled 0 adcr_ena 0 right adc enable 0 = adc disabled 1 = adc enabled r5 (0005h) power management (5) 13 aif2dacl_ena 0 enable aif2dac (left) input path 0 = disabled 1 = enabled 12 aif2dacr_ena 0 enable aif2dac (right) input path 0 = disabled 1 = enabled 11 aif1dac2l_ena 0 enable aif1dac2 (left) input path (aif1, timeslot 1) 0 = disabled 1 = enabled 10 aif1dac2r_ena 0 enable aif1dac2 (right) input path (aif1, timeslot 1) 0 = disabled 1 = enabled 9 aif1dac1l_ena 0 enable aif1dac1 (left) input path (aif1, timeslot 0) 0 = disabled 1 = enabled 8 aif1dac1r_ena 0 enable aif1dac1 (right) input path (aif1, timeslot 0) 0 = disabled 1 = enabled 3 dac2l_ena 0 left dac2 enable 0 = dac disabled 1 = dac enabled 2 dac2r_ena 0 right dac2 enable 0 = dac disabled 1 = dac enabled 1 dac1l_ena 0 left dac1 enable 0 = dac disabled 1 = dac enabled 0 dac1r_ena 0 right dac1 enable 0 = dac disabled 1 = dac enabled r76 (004ch) charge pump (1) 15 cp_ena 0 enable charge-pump digits 0 = disable 1 = enable
WM8994 production data w pd, april 2012, rev 4.4 234 register address bit label default description r84 (0054h) dc servo (1) 1 dcs_ena_chan _1 0 dc servo enable for hpout1r 0 = disabled 1 = enabled 0 dcs_ena_chan _0 0 dc servo enable for hpout1l 0 = disabled 1 = enabled r272 (0110h) write sequencer ctrl (1) 8 wseq_ena 0 write sequencer enable. 0 = disabled 1 = enabled r512 (0200h) aif 1 clocking (1) 0 aif1clk_ena 0 aif1clk enable 0 = disabled 1 = enabled r516 (0204h) aif 2 clocking (1) 0 aif2clk_ena 0 aif2clk enable 0 = disabled 1 = enabled r520 (0208h) clocking (1) 4 toclk_ena 0 slow clock (toclk) enable 0 = disabled 1 = enabled this clock is required for zero-cross timeout. 3 aif1dspclk_en a 0 aif1 processing clock enable 0 = disabled 1 = enabled 2 aif2dspclk_en a 0 aif2 processing clock enable 0 = disabled 1 = enabled 1 sysdspclk_en a 0 digital mixing processor clock enable 0 = disabled 1 = enabled r544 (0220h) fll1 control (1) 0 fll1_ena 0 fll1 enable 0 = disabled 1 = enabled this should be set as the final step of the fll1 enable sequence, ie. after the other fll registers have been configured. r576 (0240h) fll2 control (1) 0 fll2_ena 0 fll2 enable 0 = disabled 1 = enabled this should be set as the final step of the fll2 enable sequence, ie. after the other fll registers have been configured. table 138 power management
production data WM8994 w pd, april 2012, rev 4.4 235 thermal shutdown the WM8994 incorporates a temperature sensor which detects when the device temperature is within normal limits or if the device is approaching a hazardous temperature condition. the temperature sensor can be configured to automatically disable the audio outputs of the WM8994 in response to an overtemperature condition (approximately 150oc). the temperature status can be output directly on a gpio pin, as described in the ?general purpose input/output? section. the temperature sensor can also be used to generate interrupt events, as described in the ?interrupts? section. the gpio and interrupt functions can be used to indicate either a warning temperature event or the shutdown temperature event. the temperature sensor is enabled by setting the tshut_ena register bit. when the tshut_opdis is also set, then a device over-temperature condition will cause the speaker outputs (spkoutl and spkoutr) of the WM8994 to be disabled; this response is likely to prevent any damage to the device attributable to the large currents of the output drivers. note that, to prevent pops and clicks, tshu t_ena and tshut_opdis should only be updated whilst the speaker and headphone outputs are disabled. register address bit label default description r2 (0002h) power management (2) 14 tshut_ena 1 thermal sensor enable 0 = disabled 1 = enabled 13 tshut_opdis 1 thermal shutdown control (causes audio outputs to be disabled if an overtemperature occurs. the thermal sensor must also be enabled.) 0 = disabled 1 = enabled table 139 thermal shutdown
WM8994 production data w pd, april 2012, rev 4.4 236 power on reset the WM8994 includes a power-on reset (por) circuit, which is used to reset the digital logic into a default state after power up. the por circuit derives its output from avdd2 and dcvdd. the internal por signal is asserted low when avdd2 and dcvdd are below minimum thresholds. the specific behaviour of the circuit will vary, depending on relative timing of the supply voltages. typical scenarios are illustrated in figure 85 and figure 86. figure 85 power on reset timing ? avdd2 enabled/disabled first dcvdd 0v avdd2 0v v pora v pord_off lo hi internal por device ready v pora_on por active por active por undefined figure 86 power on reset timing - dcvdd enabled/disabled first the por signal is undefined until avdd2 has exceeded the minimum threshold, v pora . once this threshold has been exceeded, por is asserted low and the chip is held in reset. in this condition, all writes to the control interface are ignored. once avdd2 and dcvdd have reached their respective power on thresholds, por is released high, all registers are in their default state, and writes to the control interface may take place. note that a power-on reset period, t por , applies after avdd2 and dcvdd have reached their respective power on thresholds. this specification is guaranteed by design rather than test. on power down, por is asserted low when either avdd2 or dcvdd falls below their respective power-down thresholds.
production data WM8994 w pd, april 2012, rev 4.4 237 typical power-on reset parameters for the WM8994 are defined in table 140. symbol description typ unit v pora_on power-on threshold (avdd2) 1.15 v v pora_off power-off threshold (avdd2) 1.14 v v pord_on power-on threshold (dcvdd) 0.56 v v pord_off power-off threshold (dcvdd) 0.55 v t por minimum power-on reset period 100 ns table 140 typical power-on reset parameters table 141 describes the status of the WM8994 digital i/o pins when the power on reset has completed, prior to any register writes. the same conditions apply on completion of a software reset (described in the ?software reset and device id? section). pin no name type reset status dbvdd power domain a3 spkmode digital input pull-up to dbvdd a4 cifmode digital input pull-down to dgnd d4 ldo1ena digital input pull-down to dgnd d5 ldo2ena digital input pull-down to dgnd g2 cs/addr digital input pull-down to dgnd h1 sclk digital input digital input f3 sda digital input/output digital input d3 mclk1 digital input digital input e1 gpio2/mclk2 digital input pull-down to dgnd g1 bclk1 digital input/output digital input e3 lrclk1 digital input/output digital input g3 adclrclk1/gpio1 digital input/output digital input e4 dacdat1 digital input digital input f2 adcdat1 digital output digital output h2 gpio3/bclk2 digital input/output digital input, pull-down to dgnd f4 gpio4/lrclk2 digital input/output digital input, pull-down to dgnd h3 gpio5/dacdat2 digital input/output digital input, pull-down to dgnd g4 gpio6/adclrclk2 digital input/output digital input, pull-down to dgnd e5 gpio7/adcdat2 digital input/output digital input, pull-down to dgnd h4 gpio8/dacdat3 digital input/output digital input, pull-down to dgnd f5 gpio9/adcdat3 digital input/output digital input, pull-down to dgnd h5 gpio10/lrclk3 digital input/output digital input, pull-down to dgnd f6 gpio11/bclk3 digital input/output digital input, pull-down to dgnd micbias1 power domain c6 dmicclk digital output digital output b9 in2ln/dmicdat1 analogue input/digital input analogue input a9 in2rn/dmicdat2 analogue input/digital input analogue input table 141 WM8994 digital i/o status in reset note that the dual function in2ln/dmicdat1 and in2rn/ dmicdat2 pins default to in2ln or in2rn (analogue input) after power on reset is compl eted. the in2ln and in2rn functions are referenced to the avdd1 power domain.
WM8994 production data w pd, april 2012, rev 4.4 238 quick start-up and shutdown the default control sequences (see ?control write s equencer?) contain only the register writes necessary to enable or disable specific output driv ers. it is therefore necessary to configure the signal path and gain settings before commanding any of the default start-up sequences. this section describes minimum control sequences to configure the WM8994 for dac to headphone playback. note that these sequences are provided for guidance only; application software should be verified and tailored to ensure optimum performance. table 142 describes an example control sequence to enable dac playback to hpout1l and hpout1r path. this involves dac enable, signal path configuration and mute control, together with the default ?headphone cold start-up? sequence. table 143 describes an example control sequence to disable the direct dac to headphone path. register value description r5 (0005h) 0003h enable dac1l and dac1r r45 (002dh) 0100h enable path from dac1l to hpout1l r46 (002eh) 0100h enable path from dac1r to hpout1r r272 (0110h) 8100h initiate control write sequencer at index address 0 (00h) (headphone cold start-up sequence) delay 300ms note: delay must be inserted in the sequence to allow the control write sequencer to finish. any control interface writes to the codec will be ignored while the control write sequencer is running. r1056 (0420h) 0000h soft un-mute dac1l and dac1r table 142 dac to headphone direct start-up sequence register value description r1056 (0420h) 0200h soft mute dac1l and dac1r r272 (0110h) 812ah initiate control write sequencer at index address 42 (2ah) (generic shut-down) delay 525ms note: delay must be inserted in the sequence to allow the control write sequencer to finish. any control interface writes to the codec will be ignored while the control write sequencer is running. r45 (002dh) 0000h disable path from dac1l to hpout1l r46 (002eh) 0000h disable path from dac1r to hpout1r r5 (0005h) 0000h disable dac1l and dac1r table 143 dac to headphone direct shut-down sequence in both cases, the wseq_busy bit (in register r272, see table 121) will be set to 1 while the control write sequence runs. when this bit returns to 0, the remaining steps of the sequence may be executed.
production data WM8994 w pd, april 2012, rev 4.4 239 software reset and device id the device id can be read back from register r0. writing to this register will reset the device. the software reset causes most control registers to be reset to their default state. note that the control write sequencer registers r12288 (3000h) through to r12799 (31ffh) are not affected by a software reset; the control sequences defined in these registers are retained unchanged. the status of the WM8994 digital i/o pins following a software reset is described in table 141. the device revision can be read back from register r256. register address bit label default description r0 (0000h) software reset 15:0 sw_reset [15:0] 8994h writing to this register resets all registers to their default state. (note - control write sequencer registers are not affected by software reset.) reading from this register will indicate device family id 8994h. r256 (0100h) chip revision 3:0 chip_rev [3:0] chip revision table 144 chip reset and id
WM8994 production data w pd, april 2012, rev 4.4 240 register map the WM8994 control registers are listed below. note that only the register addresses described here should be accessed; writing to other addresses may result in undefined behaviour. register bits that are not documented should not be changed from the default values. reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default r0 (0h) software reset sw_reset [15:0] 0000h r1 (1h) power management (1) 0 0 spko utr_e na spko utl_e na hpou t2_en a 0 hpou t1l_e na hpou t1r_e na 0 0 micb2 _ena micb1 _ena 0 vmid_sel [1:0] bias_ ena 0000h r2 (2h) power management (2) 0 tshu t_ena tshu t_op dis 0 opcl k_ena 0 mixin l_ena mixin r_en a in2l_ ena in1l_ ena in2r_ ena in1r_ ena 0 0 0 0 6000h r3 (3h) power management (3) 0 0 lineo ut1n_ ena lineo ut1p_ ena lineo ut2n_ ena lineo ut2p_ ena spkr vol_e na spklv ol_en a mixou tlvol _ena mixou trvo l_ena mixou tl_en a mixou tr_en a 0 0 0 0 0000h r4 (4h) power management (4) 0 0 aif2a dcl_e na aif2a dcr_ ena aif1a dc2l_ ena aif1a dc2r_ ena aif1a dc1l_ ena aif1a dc1r_ ena 0 0 dmic2 l_ena dmic2 r_en a dmic1 l_ena dmic1 r_en a adcl_ ena adcr _ena 0000h r5 (5h) power management (5) 0 0 aif2d acl_e na aif2d acr_ ena aif1d ac2l_ ena aif1d ac2r_ ena aif1d ac1l_ ena aif1d ac1r_ ena 0 0 0 0 dac2l _ena dac2 r_en a dac1l _ena dac1 r_en a 0000h r6 (6h) power management (6) 0 0 0 0 0 0 0 0 0 0 aif3_t ri aif3_adcdat _src [1:0] aif2_ adcd at_sr c aif2_ dacd at_sr c aif1_ dacd at_sr c 0000h r21 (15h) input mixer (1) 0 0 0 0 0 0 0 in1rp _mixi nr_b oost in1lp _mixi nl_bo ost input s_cla mp 0 0 0 0 0 0 0000h r24 (18h) left line input 1&2 volume 0 0 0 0 0 0 0 in1_v u in1l_ mute in1l_z c 0 in1l_vol [4:0] 008bh r25 (19h) left line input 3&4 volume 0 0 0 0 0 0 0 in2_v u in2l_ mute in2l_z c 0 in2l_vol [4:0] 008bh r26 (1ah) right line input 1&2 volume 0 0 0 0 0 0 0 in1_v u in1r_ mute in1r_ zc 0 in1r_vol [4:0] 008bh r27 (1bh) right line input 3&4 volume 0 0 0 0 0 0 0 in2_v u in2r_ mute in2r_ zc 0 in2r_vol [4:0] 008bh r28 (1ch) left output volume 0 0 0 0 0 0 0 hpou t1_vu hpou t1l_z c hpou t1l_m ute_n hpout1l_vol [5:0] 006dh r29 (1dh) right output volume 0 0 0 0 0 0 0 hpou t1_vu hpou t1r_z c hpou t1r_m ute_n hpout1r_vol [5:0] 006dh r30 (1eh) line outputs volume 0 0 0 0 0 0 0 0 0 lineo ut1n_ mute lineo ut1p_ mute lineo ut1_v ol 0 lineo ut2n_ mute lineo ut2p_ mute lineo ut2_v ol 0066h r31 (1fh) hpout2 volume 0 0 0 0 0 0 0 0 0 0 hpou t2_mu te hpou t2_vo l 0 0 0 0 0020h r32 (20h) left opga volume 0 0 0 0 0 0 0 mixou t_vu mixou tl_zc mixou tl_mu te_n mixoutl_vol [5:0] 0079h r33 (21h) right opga volume 0 0 0 0 0 0 0 mixou t_vu mixou tr_zc mixou tr_m ute_n mixoutr_vol [5:0] 0079h r34 (22h) spkmixl attenuation 0 0 0 0 0 0 0 spka b_ref _sel 0 dac2l _spk mixl_ vol mixin l_spk mixl_ vol in1lp _spk mixl_ vol mixou tl_sp kmixl _vol dac1l _spk mixl_ vol spkmixl_vol [1:0] 0003h
production data WM8994 w pd, april 2012, rev 4.4 241 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default r35 (23h) spkmixr attenuation 0 0 0 0 0 0 0 spko ut_cl assa b 0 dac2 r_spk mixr_ vol mixin r_spk mixr_ vol in1rp _spk mixr_ vol mixou tr_sp kmixr _vol dac1 r_spk mixr_ vol spkmixr_vol [1:0] 0003h r36 (24h) spkout mixers 0 0 0 0 0 0 0 0 0 0 in2lr p_to_ spko utl spkmi xl_to _spk outl spkmi xr_t o_sp kout l in2lr p_to_ spko utr spkmi xl_to _spk outr spkmi xr_t o_sp kout r 0011h r37 (25h) classd 0 0 0 0 0 0 0 1 0 1 spkoutl_boost [2:0] spkoutr_boost [2:0] 0140h r38 (26h) speaker volume left 0 0 0 0 0 0 0 spko ut_vu spko utl_z c spko utl_m ute_n spkoutl_vol [5:0] 0079h r39 (27h) speaker volume right 0 0 0 0 0 0 0 spko ut_vu spko utr_z c spko utr_ mute _n spkoutr_vol [5:0] 0079h r40 (28h) input mixer (2) 0 0 0 0 0 0 0 0 in2lp _to_i n2l in2ln _to_i n2l in1lp _to_i n1l in1ln _to_i n1l in2rp _to_i n2r in2rn _to_i n2r in1rp _to_i n1r in1rn _to_i n1r 0000h r41 (29h) input mixer (3) 0 0 0 0 0 0 0 in2l_t o_mix inl in2l_ mixin l_vol 0 in1l_t o_mix inl in1l_ mixin l_vol 0 mixoutl_mixinl_vol [2:0] 0000h r42 (2ah) input mixer (4) 0 0 0 0 0 0 0 in2r_ to_mi xinr in2r_ mixin r_vol 0 in1r_ to_mi xinr in1r_ mixin r_vol 0 mixoutr_mixinr_vo l [2:0] 0000h r43 (2bh) input mixer (5) 0 0 0 0 0 0 0 in1lp_mixinl_vol [2:0] 0 0 0 in2lrp_mixinl_vol [2:0] 0000h r44 (2ch) input mixer (6) 0 0 0 0 0 0 0 in1rp_mixinr_vol [2:0] 0 0 0 in2lrp_mixinr_vol [2:0] 0000h r45 (2dh) output mixer (1) 0 0 0 0 0 0 0 dac1l _to_h pout 1l mixin r_to_ mixou tl mixin l_to_ mixou tl in2rn _to_ mixou tl in2ln _to_ mixou tl in1r_ to_mi xout l in1l_t o_mix outl in2lp _to_ mixou tl dac1l _to_ mixou tl 0000h r46 (2eh) output mixer (2) 0 0 0 0 0 0 0 dac1 r_to_ hpou t1r mixin l_to_ mixou tr mixin r_to_ mixou tr in2ln _to_ mixou tr in2rn _to_ mixou tr in1l_t o_mix outr in1r_ to_mi xout r in2rp _to_ mixou tr dac1 r_to_ mixou tr 0000h r47 (2fh) output mixer (3) 0 0 0 0 in2lp_mixoutl_vol [2:0] in2ln_mixoutl_vol [2:0] in1r_mixoutl_vol [2:0] in1l_mixoutl_vol [2:0] 0000h r48 (30h) output mixer (4) 0 0 0 0 in2rp_mixoutr_vol [2:0] in2rn_mixoutr_vol [2:0] in1l_mixoutr_vol [2:0] in1r_mixoutr_vol [2:0] 0000h r49 (31h) output mixer (5) 0 0 0 0 dac1l_mixoutl_vol [2:0] in2rn_mixoutl_vol [2:0] mixinr_mixoutl_vo l [2:0] mixinl_mixoutl_vol [2:0] 0000h r50 (32h) output mixer (6) 0 0 0 0 dac1r_mixoutr_vo l [2:0] in2ln_mixoutr_vol [2:0] mixinl_mixoutr_vo l [2:0] mixinr_mixoutr_vo l [2:0] 0000h r51 (33h) hpout2 mixer 0 0 0 0 0 0 0 0 0 0 in2lr p_to_ hpou t2 mixou tlvol _to_h pout 2 mixou trvo l_to_ hpou t2 0 0 0 0000h r52 (34h) line mixer (1) 0 0 0 0 0 0 0 0 0 mixou tl_to _line out1 n mixou tr_to _line out1 n lineo ut1_m ode 0 in1r_ to_li neou t1p in1l_t o_lin eout 1p mixou tl_to _line out1 p 0000h r53 (35h) line mixer (2) 0 0 0 0 0 0 0 0 0 mixou tr_to _line out2 mixou tl_to _line out2 lineo ut2_m ode 0 in1l_t o_lin eout 2p in1r_ to_li neou t2p mixou tr_to _line out2 0000h
WM8994 production data w pd, april 2012, rev 4.4 242 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default n n p r54 (36h) speaker mixer 0 0 0 0 0 0 dac2l _to_s pkmix l dac2 r_to_ spkmi xr mixin l_to_ spkmi xl mixin r_to_ spkmi xr in1lp _to_s pkmix l in1rp _to_s pkmix r mixou tl_to _spk mixl mixou tr_to _spk mixr dac1l _to_s pkmix l dac1 r_to_ spkmi xr 0000h r55 (37h) additional control 0 0 0 0 0 0 0 0 lineo ut1_f b lineo ut2_f b 0 0 0 0 0 vroi 0000h r56 (38h) antipop (1) 0 0 0 0 0 0 0 0 lineo ut_v mid_b uf_en a hpou t2_in_ ena lineo ut1_d isch lineo ut2_d isch 0 0 0 0 0000h r57 (39h) antipop (2) 0 0 0 0 0 0 0 micb2 _disc h micb1 _disc h vmid_ramp [1:0] 0 vmid_ buf_e na start up_bi as_en a bias_ src vmid_ disch 0000h r58 (3ah) micbias 0 0 0 0 0 0 0 0 micd_scthr [1:0] micd_thr [2:0] micd_ ena micb2 _lvl micb1 _lvl 0000h r59 (3bh) ldo 1 0 0 0 0 0 0 0 0 0 0 0 0 ldo1_vsel [2:0] ldo1_ disch 000dh r60 (3ch) ldo 2 0 0 0 0 0 0 0 0 0 0 0 0 0 ldo2_vsel [1:0] ldo2_ disch 0003h r76 (4ch) charge pump (1) cp_e na 0 0 1 1 1 1 1 0 0 1 0 0 1 0 1 1f25h r77 (4dh) charge pump (2) cp_di sch 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 ab19h r81 (51h) class w (1) 0 0 0 0 0 0 cp_dyn_src _sel [1:0] 0 0 0 0 0 1 0 cp_d yn_p wr 0004h r84 (54h) dc servo (1) 0 0 dcs_t rig_si ngle_ 1 dcs_t rig_si ngle_ 0 0 0 dcs_t rig_s eries _1 dcs_t rig_s eries _0 0 0 dcs_t rig_s tart up_1 dcs_t rig_s tart up_0 dcs_t rig_d ac_w r_1 dcs_t rig_d ac_w r_0 dcs_ ena_ chan _1 dcs_ ena_ chan _0 0000h r85 (55h) dc servo (2) 0 0 0 0 dcs_series_no_01 [6:0] 0 dcs_timer_period_01 [3:0] 054ah r88 (58h) dc servo readback 0 0 0 0 0 0 dcs_cal_co mplete [1:0] 0 0 dcs_dac_wr _complete [1:0] 0 0 dcs_startu p_complete [1:0] 0000h r89 (59h) dc servo (4) dcs_dac_wr_val_1 [7:0] dcs_dac_wr_val_0 [7:0] 0000h r96 (60h) analogue hp (1) 0 0 0 0 0 0 0 0 hpou t1l_r mv_s hort hpou t1l_o utp hpou t1l_d ly 0 hpou t1r_r mv_s hort hpou t1r_o utp hpou t1r_d ly 0 0000h r256 (100h) chip revision 0 0 0 0 0 0 0 0 0 0 0 0 chip_rev [3:0] 000xh r257 (101h) control interface 1 0 0 0 0 0 0 0 0 spi_c ontr d spi_4 wire spi_c fg 0 auto _inc 0 0 8004h r272 (110h) write sequencer ctrl (1) wseq _ena 0 0 0 0 0 wseq _abo rt wseq _star t 0 wseq_start_index [6:0] 0000h r273 (111h) write sequencer ctrl (2) 0 0 0 0 0 0 0 wseq _busy 0 wseq_current_index [6:0] 0000h r512 (200h) aif1 clocking (1) 0 0 0 0 0 0 0 0 0 0 0 aif1clk_src [1:0] aif1c lk_in v aif1c lk_di v aif1c lk_en a 0000h r513 (201h) aif1 clocking (2) 0 0 0 0 0 0 0 0 0 0 aif1dac_div [2:0] aif1adc_div [2:0] 0000h r516 (204h) aif2 clocking (1) 0 0 0 0 0 0 0 0 0 0 0 aif2clk_src [1:0] aif2c lk_in v aif2c lk_di v aif2c lk_en a 0000h r517 (205h) aif2 clocking (2) 0 0 0 0 0 0 0 0 0 0 aif2dac_div [2:0] aif2adc_div [2:0] 0000h
production data WM8994 w pd, april 2012, rev 4.4 243 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default r520 (208h) clocking (1) 0 0 0 0 0 0 0 0 0 0 0 tocl k_ena aif1d spclk _ena aif2d spclk _ena sysd spclk _ena syscl k_sr c 0000h r521 (209h) clocking (2) 0 0 0 0 0 toclk_div [2:0] 0 dbclk_div [2:0] 0 opclk_div [2:0] 0000h r528 (210h) aif1 rate 0 0 0 0 0 0 0 0 aif1_sr [3:0] aif1clk_rate [3:0] 0083h r529 (211h) aif2 rate 0 0 0 0 0 0 0 0 aif2_sr [3:0] aif2clk_rate [3:0] 0083h r530 (212h) rate status 0 0 0 0 0 0 0 0 0 0 0 0 sr_error [3:0] 0000h r544 (220h) fll1 control (1) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fll1_ osc_ ena fll1_ ena 0000h r545 (221h) fll1 control (2) 0 0 fll1_outdiv [5:0] 0 0 0 0 0 fll1_fratio [2:0] 0000h r546 (222h) fll1 control (3) fll1_k [15:0] 0000h r547 (223h) fll1 control (4) 0 fll1_n [9:0] 0 0 0 0 0 0000h r548 (224h) fll1 control (5) 0 0 0 fll1_frc_nco_val [5:0] fll1_ frc_ nco 0 fll1_refclk _div [1:0] 0 fll1_refclk _src [1:0] 0c80h r576 (240h) fll2 control (1) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fll2_ osc_ ena fll2_ ena 0000h r577 (241h) fll2 control (2) 0 0 fll2_outdiv [5:0] 0 0 0 0 0 fll2_fratio [2:0] 0000h r578 (242h) fll2 control (3) fll2_k [15:0] 0000h r579 (243h) fll2 control (4) 0 fll2_n [9:0] 0 0 0 0 0 0000h r580 (244h) fll2 control (5) 0 0 0 fll2_frc_nco_val [5:0] fll2_ frc_ nco 0 fll2_refclk _div [1:0] 0 fll2_refclk _src [1:0] 0c80h r768 (300h) aif1 control (1) aif1a dcl_s rc aif1a dcr_ src aif1a dc_t dm 0 0 0 0 aif1_ bclk_ inv aif1_l rclk_ inv aif1_wl [1:0] aif1_fmt [1:0] 0 0 0 4050h r769 (301h) aif1 control (2) aif1d acl_s rc aif1d acr_ src 0 0 aif1dac_boo st [1:0] 0 aif1_ mono 0 0 0 aif1d ac_c omp aif1d ac_c ompm ode aif1a dc_c omp aif1a dc_c ompm ode aif1_l oopb ack 4000h r770 (302h) aif1 master/slave aif1_t ri aif1_ mstr aif1_ clk_f rc aif1_l rclk_ frc 0 0 0 0 0 0 0 0 0 0 0 0 0000h r771 (303h) aif1 bclk 0 0 0 0 0 0 0 aif1_bclk_div [4:0] 0 0 0 0 0040h r772 (304h) aif1adc lrclk 0 0 0 0 aif1a dc_lr clk_d ir aif1adc_rate [10:0] 0040h r773 (305h) aif1dac lrclk 0 0 0 0 aif1d ac_lr clk_d ir aif1dac_rate [10:0] 0040h r774 (306h) aif1dac data 0 0 0 0 0 0 0 0 0 0 0 0 0 0 aif1d acl_d at_in v aif1d acr_ dat_i nv 0000h r775 (307h) aif1adc data 0 0 0 0 0 0 0 0 0 0 0 0 0 0 aif1a dcl_d at_in v aif1a dcr_ dat_i nv 0000h r784 (310h) aif2 control (1) aif2a dcl_s rc aif2a dcr_ src aif2a dc_t dm aif2a dc_t dm_c han 0 0 0 aif2_ bclk_ inv aif2_l rclk_ inv aif2_wl [1:0] aif2_fmt [1:0] 0 0 0 4050h r785 (311h) aif2 control (2) aif2d acl_s rc aif2d acr_ src aif2d ac_td m aif2d ac_td m_ch an aif2dac_boo st [1:0] 0 aif2_ mono 0 0 0 aif2d ac_c omp aif2d ac_c ompm ode aif2a dc_c omp aif2a dc_c ompm ode aif2_l oopb ack 4000h
WM8994 production data w pd, april 2012, rev 4.4 244 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default r786 (312h) aif2 master/slave aif2_t ri aif2_ mstr aif2_ clk_f rc aif2_l rclk_ frc 0 0 0 0 0 0 0 0 0 0 0 0 0000h r787 (313h) aif2 bclk 0 0 0 0 0 0 0 aif2_bclk_div [4:0] 0 0 0 0 0040h r788 (314h) aif2adc lrclk 0 0 0 0 aif2a dc_lr clk_d ir aif2adc_rate [10:0] 0040h r789 (315h) aif2dac lrclk 0 0 0 0 aif2d ac_lr clk_d ir aif2dac_rate [10:0] 0040h r790 (316h) aif2dac data 0 0 0 0 0 0 0 0 0 0 0 0 0 0 aif2d acl_d at_in v aif2d acr_ dat_i nv 0000h r791 (317h) aif2adc data 0 0 0 0 0 0 0 0 0 0 0 0 0 0 aif2a dcl_d at_in v aif2a dcr_ dat_i nv 0000h r1024 (400h) aif1 adc1 left volume 0 0 0 0 0 0 0 aif1a dc1_v u aif1adc1l_vol [7:0] 00c0h r1025 (401h) aif1 adc1 right volume 0 0 0 0 0 0 0 aif1a dc1_v u aif1adc1r_vol [7:0] 00c0h r1026 (402h) aif1 dac1 left volume 0 0 0 0 0 0 0 aif1d ac1_v u aif1dac1l_vol [7:0] 00c0h r1027 (403h) aif1 dac1 right volume 0 0 0 0 0 0 0 aif1d ac1_v u aif1dac1r_vol [7:0] 00c0h r1028 (404h) aif1 adc2 left volume 0 0 0 0 0 0 0 aif1a dc2_v u aif1adc2l_vol [7:0] 00c0h r1029 (405h) aif1 adc2 right volume 0 0 0 0 0 0 0 aif1a dc2_v u aif1adc2r_vol [7:0] 00c0h r1030 (406h) aif1 dac2 left volume 0 0 0 0 0 0 0 aif1d ac2_v u aif1dac2l_vol [7:0] 00c0h r1031 (407h) aif1 dac2 right volume 0 0 0 0 0 0 0 aif1d ac2_v u aif1dac2r_vol [7:0] 00c0h r1040 (410h) aif1 adc1 filters aif1a dc_4f s aif1adc1_hp f_cut [1:0] aif1a dc1l_ hpf aif1a dc1r_ hpf 0 0 0 0 0 0 0 0 0 0 0 0000h r1041 (411h) aif1 adc2 filters 0 aif1adc2_hp f_cut [1:0] aif1a dc2l_ hpf aif1a dc2r_ hpf 0 0 0 0 0 0 0 0 0 0 0 0000h r1056 (420h) aif1 dac1 filters (1) 0 0 0 0 0 0 aif1d ac1_ mute 0 aif1d ac1_ mono 0 aif1d ac1_ mute rate aif1d ac1_u nmut e_ra mp 0 aif1dac1_de emp [1:0] 0 0200h r1057 (421h) aif1 dac1 filters (2) 0 0 aif1dac1_3d_gain [4:0] aif1d ac1_3 d_en a 0 0 0 1 0 0 0 0 0010h r1058 (422h) aif1 dac2 filters (1) 0 0 0 0 0 0 aif1d ac2_ 0 aif1d ac2_ 0 aif1d ac2_ aif1d ac2_u 0 aif1dac2_de emp [1:0] 0 0200h
production data WM8994 w pd, april 2012, rev 4.4 245 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default mute mono mute rate nmut e_ra mp r1059 (423h) aif1 dac2 filters (2) 0 0 aif1dac2_3d_gain [4:0] aif1d ac2_3 d_en a 0 0 0 1 0 0 0 0 0010h r1088 (440h) aif1 drc1 (1) aif1drc1_sig_det_rms [4:0] aif1drc1_sig _det_pk [1:0] aif1d rc1_n g_en a aif1d rc1_s ig_de t_mo de aif1d rc1_s ig_de t aif1d rc1_k nee2_ op_e na aif1d rc1_ qr aif1d rc1_a nticli p aif1d ac1_d rc_e na aif1a dc1l_ drc_ ena aif1a dc1r_ drc_ ena 0098h r1089 (441h) aif1 drc1 (2) 0 0 0 aif1drc1_atk [3:0] aif1drc1 _dcy [3:0] aif1drc1_mingain [2:0] aif1drc1_ma xgain [1:0] 0845h r1090 (442h) aif1 drc1 (3) aif1drc1_ng_mingain [3:0] aif1drc1_ng _exp [1:0] aif1drc1_qr _thr [1:0] aif1drc1_qr _dcy [1:0] aif1drc1_hi_comp [2:0] aif1drc1_lo_comp [2:0] 0000h r1091 (443h) aif1 drc1 (4) 0 0 0 0 0 aif1drc1_knee_ ip [5:0] aif1drc1_knee_op [4:0] 0000h r1092 (444h) aif1 drc1 (5) 0 0 0 0 0 0 aif1drc1_knee2_ip [4:0 ] aif1drc1_knee2_o p [4:0] 0000h r1104 (450h) aif1 drc2 (1) aif1drc2_sig_det_rms [4:0] aif1drc2_sig _det_pk [1:0] aif1d rc2_n g_en a aif1d rc2_s ig_de t_mo de aif1d rc2_s ig_de t aif1d rc2_k nee2_ op_e na aif1d rc2_ qr aif1d rc2_a nticli p aif1d ac2_d rc_e na aif1a dc2l_ drc_ ena aif1a dc2r_ drc_ ena 0098h r1105 (451h) aif1 drc2 (2) 0 0 0 aif1drc2_atk [3:0] aif1drc2 _dcy [3:0] aif1drc2_mingain [2:0] aif1drc2_ma xgain [1:0] 0845h r1106 (452h) aif1 drc2 (3) aif1drc2_ng_mingain [3:0] aif1drc2_ng _exp [1:0] aif1drc2_qr _thr [1:0] aif1drc2_qr _dcy [1:0] aif1drc2_hi_comp [2:0] aif1drc2_lo_comp [2:0] 0000h r1107 (453h) aif1 drc2 (4) 0 0 0 0 0 aif1drc2_knee_ ip [5:0] aif1drc2_knee_op [4:0] 0000h r1108 (454h) aif1 drc2 (5) 0 0 0 0 0 0 aif1drc2_knee2_ip [4:0 ] aif1drc2_knee2_o p [4:0] 0000h r1152 (480h) aif1 dac1 eq gains (1) aif1dac1_eq_b1_gain [4:0] aif1dac1_eq_b2_gain [4:0] aif1dac1_eq_b3_gain [4:0] aif1d ac1_e q_en a 6318h r1153 (481h) aif1 dac1 eq gains (2) aif1dac1_eq_b4_gain [4:0] aif1dac1_eq_b5_gain [4:0] 0 0 0 0 0 0 6300h r1154 (482h) aif1 dac1 eq band 1 a aif1dac1_eq_b1_a [15:0] 0fcah r1155 (483h) aif1 dac1 eq band 1 b aif1dac1_eq_b1_b [15:0] 0400h r1156 (484h) aif1 dac1 eq band 1 pg aif1dac1_eq_b1_pg [15:0] 00d8h r1157 (485h) aif1 dac1 eq band 2 a aif1dac1_eq_b2_a [15:0] 1eb5h r1158 (486h) aif1 dac1 eq band 2 b aif1dac1_eq_b2_b [15:0] f145h r1159 (487h) aif1 dac1 eq band 2 c aif1dac1_eq_b2_c [15:0] 0b75h r1160 (488h) aif1 dac1 eq band 2 pg aif1dac1_eq_b2_pg [15:0] 01c5h r1161 (489h) aif1 dac1 eq band 3 a aif1dac1_eq_b3_a [15:0] 1c58h r1162 (48ah) aif1 dac1 eq band 3 b aif1dac1_eq_b3_b [15:0] f373h r1163 (48bh) aif1 dac1 eq band 3 c aif1dac1_eq_b3_c [15:0] 0a54h r1164 (48ch) aif1 dac1 eq band 3 pg aif1dac1_eq_b3_pg [15:0] 0558h r1165 (48dh) aif1 dac1 eq band 4 a aif1dac1_eq_b4_a [15:0] 168eh
WM8994 production data w pd, april 2012, rev 4.4 246 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default r1166 (48eh) aif1 dac1 eq band 4 b aif1dac1_eq_b4_b [15:0] f829h r1167 (48fh) aif1 dac1 eq band 4 c aif1dac1_eq_b4_c [15:0] 07adh r1168 (490h) aif1 dac1 eq band 4 pg aif1dac1_eq_b4_pg [15:0] 1103h r1169 (491h) aif1 dac1 eq band 5 a aif1dac1_eq_b5_a [15:0] 0564h r1170 (492h) aif1 dac1 eq band 5 b aif1dac1_eq_b5_b [15:0] 0559h r1171 (493h) aif1 dac1 eq band 5 pg aif1dac1_eq_b5_pg [15:0] 4000h r1184 (4a0h) aif1 dac2 eq gains (1) aif1dac2_eq_b1_gain [4:0] aif1dac2_eq_b2_gain [4:0] aif1dac2_eq_b3_gain [4:0] aif1d ac2_e q_en a 6318h r1185 (4a1h) aif1 dac2 eq gains (2) aif1dac2_eq_b4_gain [4:0] aif1dac2_eq_b5_gain [4:0] 0 0 0 0 0 0 6300h r1186 (4a2h) aif1 dac2 eq band 1 a aif1dac2_eq_b1_a [15:0] 0fcah r1187 (4a3h) aif1 dac2 eq band 1 b aif1dac2_eq_b1_b [15:0] 0400h r1188 (4a4h) aif1 dac2 eq band 1 pg aif1dac2_eq_b1_pg [15:0] 00d8h r1189 (4a5h) aif1 dac2 eq band 2 a aif1dac2_eq_b2_a [15:0] 1eb5h r1190 (4a6h) aif1 dac2 eq band 2 b aif1dac2_eq_b2_b [15:0] f145h r1191 (4a7h) aif1 dac2 eq band 2 c aif1dac2_eq_b2_c [15:0] 0b75h r1192 (4a8h) aif1 dac2 eq band 2 pg aif1dac2_eq_b2_pg [15:0] 01c5h r1193 (4a9h) aif1 dac2 eq band 3 a aif1dac2_eq_b3_a [15:0] 1c58h r1194 (4aah) aif1 dac2 eq band 3 b aif1dac2_eq_b3_b [15:0] f373h r1195 (4abh) aif1 dac2 eq band 3 c aif1dac2_eq_b3_c [15:0] 0a54h r1196 (4ach) aif1 dac2 eq band 3 pg aif1dac2_eq_b3_pg [15:0] 0558h r1197 (4adh) aif1 dac2 eq band 4 a aif1dac2_eq_b4_a [15:0] 168eh r1198 (4aeh) aif1 dac2 eq band 4 b aif1dac2_eq_b4_b [15:0] f829h r1199 (4afh) aif1 dac2 eq band 4 c aif1dac2_eq_b4_c [15:0] 07adh r1200 (4b0h) aif1 dac2 eq band 4 pg aif1dac2_eq_b4_pg [15:0] 1103h r1201 (4b1h) aif1 dac2 eq band 5 a aif1dac2_eq_b5_a [15:0] 0564h r1202 (4b2h) aif1 dac2 eq band 5 b aif1dac2_eq_b5_b [15:0] 0559h r1203 (4b3h) aif1 dac2 eq band 5 pg aif1dac2_eq_b5_pg [15:0] 4000h r1280 (500h) aif2 adc left volume 0 0 0 0 0 0 0 aif2a dc_v u aif2adcl_vol [7:0] 00c0h r1281 (501h) aif2 adc right volume 0 0 0 0 0 0 0 aif2a dc_v aif2adcr_vol [7:0] 00c0h
production data WM8994 w pd, april 2012, rev 4.4 247 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default u r1282 (502h) aif2 dac left volume 0 0 0 0 0 0 0 aif2d ac_v u aif2dacl_vol [7:0] 00c0h r1283 (503h) aif2 dac right volume 0 0 0 0 0 0 0 aif2d ac_v u aif2dacr_vol [7:0] 00c0h r1296 (510h) aif2 adc filters 0 aif2adc_hpf _cut [1:0] aif2a dcl_h pf aif2a dcr_ hpf 0 0 0 0 0 0 0 0 0 0 0 0000h r1312 (520h) aif2 dac filters (1) 0 0 0 0 0 0 aif2d ac_m ute 0 aif2d ac_m ono 0 aif2d ac_m uter ate aif2d ac_u nmut e_ra mp 0 aif2dac_dee mp [1:0] 0 0200h r1313 (521h) aif2 dac filters (2) 0 0 aif2dac_3d_gain [4:0] aif2d ac_3d _ena 0 0 0 1 0 0 0 0 0010h r1344 (540h) aif2 drc (1) aif2drc_sig_det_rms [4:0] aif2drc_sig_ det_pk [1:0] aif2d rc_n g_en a aif2d rc_si g_de t_mo de aif2d rc_si g_de t aif2d rc_k nee2_ op_e na aif2d rc_q r aif2d rc_a nticli p aif2d ac_d rc_e na aif2a dcl_d rc_e na aif2a dcr_ drc_ ena 0098h r1345 (541h) aif2 drc (2) 0 0 0 aif2drc_atk [3:0] aif2drc _dcy [3:0] aif2drc_mingain [2:0] aif2drc_max gain [1:0] 0845h r1346 (542h) aif2 drc (3) aif2drc_ng_mingain [3:0] aif2drc_ng_ exp [1:0] aif2drc_qr_ thr [1:0] aif2drc_qr_ dcy [1:0] aif2drc_hi_comp [2:0] aif2drc_lo_comp [2:0] 0000h r1347 (543h) aif2 drc (4) 0 0 0 0 0 aif2drc_knee _ip [5:0] aif2drc_kn ee_op [4:0] 0000h r1348 (544h) aif2 drc (5) 0 0 0 0 0 0 aif2drc_knee2_ip [4:0 ] aif2drc_knee2_op [4:0] 0000h r1408 (580h) aif2 eq gains (1) aif2dac_eq_b1_gain [4:0] ai f2dac_eq_b2_gain [4:0] aif2dac_eq_b3_gain [4:0] aif2d ac_e q_en a 6318h r1409 (581h) aif2 eq gains (2) aif2dac_eq_b4_gain [4:0] aif2dac_eq_b5_gain [4:0] 0 0 0 0 0 0 6300h r1410 (582h) aif2 eq band 1 a aif2dac_eq_b1_a [15:0] 0fcah r1411 (583h) aif2 eq band 1 b aif2dac_eq_b1_b [15:0] 0400h r1412 (584h) aif2 eq band 1 pg aif2dac_eq_b1_pg [15:0] 00d8h r1413 (585h) aif2 eq band 2 a aif2dac_eq_b2_a [15:0] 1eb5h r1414 (586h) aif2 eq band 2 b aif2dac_eq_b2_b [15:0] f145h r1415 (587h) aif2 eq band 2 c aif2dac_eq_b2_c [15:0] 0b75h r1416 (588h) aif2 eq band 2 pg aif2dac_eq_b2_pg [15:0] 01c5h r1417 (589h) aif2 eq band 3 a aif2dac_eq_b3_a [15:0] 1c58h r1418 (58ah) aif2 eq band 3 b aif2dac_eq_b3_b [15:0] f373h r1419 (58bh) aif2 eq band 3 c aif2dac_eq_b3_c [15:0] 0a54h r1420 (58ch) aif2 eq band 3 pg aif2dac_eq_b3_pg [15:0] 0558h r1421 (58dh) aif2 eq band 4 a aif2dac_eq_b4_a [15:0] 168eh r1422 (58eh) aif2 eq band 4 b aif2dac_eq_b4_b [15:0] f829h r1423 (58fh) aif2 eq band 4 c aif2dac_eq_b4_c [15:0] 07adh r1424 (590h) aif2 eq band 4 pg aif2dac_eq_b4_pg [15:0] 1103h r1425 (591h) aif2 eq band 5 a aif2dac_eq_b5_a [15:0] 0564h r1426 (592h) aif2 eq band 5 b aif2dac_eq_b5_b [15:0] 0559h r1427 (593h) aif2 eq band 5 pg aif2dac_eq_b5_pg [15:0] 4000h r1536 (600h) dac1 mixer volumes 0 0 0 0 0 0 0 adcr_dac1_vol [3:0] 0 adcl_dac1_vol [3:0] 0000h r1537 (601h) dac1 left mixer routing 0 0 0 0 0 0 0 0 0 0 adcr _to_d ac1l adcl_ to_d ac1l 0 aif2d acl_t o_da aif1d ac2l_ to_d aif1d ac1l_ to_d 0000h
WM8994 production data w pd, april 2012, rev 4.4 248 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default c1l ac1l ac1l r1538 (602h) dac1 right mixer routing 0 0 0 0 0 0 0 0 0 0 adcr _to_d ac1r adcl_ to_d ac1r 0 aif2d acr_t o_da c1r aif1d ac2r_ to_d ac1r aif1d ac1r_ to_d ac1r 0000h r1539 (603h) dac2 mixer volumes 0 0 0 0 0 0 0 adcr_dac2_vol [3:0] 0 adcl_dac2_vol [3:0] 0000h r1540 (604h) dac2 left mixer routing 0 0 0 0 0 0 0 0 0 0 adcr _to_d ac2l adcl_ to_d ac2l 0 aif2d acl_t o_da c2l aif1d ac2l_ to_d ac2l aif1d ac1l_ to_d ac2l 0000h r1541 (605h) dac2 right mixer routing 0 0 0 0 0 0 0 0 0 0 adcr _to_d ac2r adcl_ to_d ac2r 0 aif2d acr_t o_da c2r aif1d ac2r_ to_d ac2r aif1d ac1r_ to_d ac2r 0000h r1542 (606h) aif1 adc1 left mixer routing 0 0 0 0 0 0 0 0 0 0 0 0 0 0 adc1l _to_a if1ad c1l aif2d acl_t o_aif 1adc1 l 0000h r1543 (607h) aif1 adc1 right mixer routing 0 0 0 0 0 0 0 0 0 0 0 0 0 0 adc1 r_to_ aif1a dc1r aif2d acr_t o_aif 1adc1 r 0000h r1544 (608h) aif1 adc2 left mixer routing 0 0 0 0 0 0 0 0 0 0 0 0 0 0 adc2l _to_a if1ad c2l aif2d acl_t o_aif 1adc2 l 0000h r1545 (609h) aif1 adc2 right mixer routing 0 0 0 0 0 0 0 0 0 0 0 0 0 0 adc2 r_to_ aif1a dc2r aif2d acr_t o_aif 1adc2 r 0000h r1552 (610h) dac1 left volume 0 0 0 0 0 0 dac1l _mut e dac1_ vu dac1l_vol [7:0] 02c0h r1553 (611h) dac1 right volume 0 0 0 0 0 0 dac1 r_mu te dac1_ vu dac1r_vol [7:0] 02c0h r1554 (612h) dac2 left volume 0 0 0 0 0 0 dac2l _mut e dac2_ vu dac2l_vol [7:0] 02c0h r1555 (613h) dac2 right volume 0 0 0 0 0 0 dac2 r_mu te dac2_ vu dac2r_vol [7:0] 02c0h r1556 (614h) dac softmute 0 0 0 0 0 0 0 0 0 0 0 0 0 0 dac_ soft mute mode dac_ mute rate 0000h r1568 (620h) oversampling 0 0 0 0 0 0 0 0 0 0 0 0 0 0 adc_ osr12 8 dac_ osr12 8 0002h r1569 (621h) sidetone 0 0 0 0 0 0 st_hpf_cut [2:0] st_hp f 0 0 0 0 str_s el stl_s el 0000h r1792 (700h) gpio 1 gp1_d ir gp1_p u gp1_p d 0 0 gp1_p ol gp1_ op_c fg gp1_d b 0 gp1_l vl 0 gp1_fn [4:0] 8100h r1793 (701h) gpio 2 gp2_d ir gp2_p u gp2_p d 0 0 gp2_p ol 0 gp2_d b 0 gp2_l vl 0 gp2_fn [4:0] a101h r1794 (702h) gpio 3 gp3_d gp3_p gp3_p 0 0 gp3_p gp3_ gp3_d 0 gp3_l 0 gp3_fn [4:0] a101h
production data WM8994 w pd, april 2012, rev 4.4 249 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default ir u d ol op_c fg b vl r1795 (703h) gpio 4 gp4_d ir gp4_p u gp4_p d 0 0 gp4_p ol gp4_ op_c fg gp4_d b 0 gp4_l vl 0 gp4_fn [4:0] a101h r1796 (704h) gpio 5 gp5_d ir gp5_p u gp5_p d 0 0 gp5_p ol gp5_ op_c fg gp5_d b 0 gp5_l vl 0 gp5_fn [4:0] a101h r1797 (705h) gpio 6 gp6_d ir gp6_p u gp6_p d 0 0 gp6_p ol gp6_ op_c fg gp6_d b 0 gp6_l vl 0 gp6_fn [4:0] a101h r1798 (706h) gpio 7 gp7_d ir gp7_p u gp7_p d 0 0 gp7_p ol gp7_ op_c fg gp7_d b 0 gp7_l vl 0 gp7_fn [4:0] a101h r1799 (707h) gpio 8 gp8_d ir gp8_p u gp8_p d 0 0 gp8_p ol gp8_ op_c fg gp8_d b 0 gp8_l vl 0 gp8_fn [4:0] a101h r1800 (708h) gpio 9 gp9_d ir gp9_p u gp9_p d 0 0 gp9_p ol gp9_ op_c fg gp9_d b 0 gp9_l vl 0 gp9_fn [4:0] a101h r1801 (709h) gpio 10 gp10_ dir gp10_ pu gp10_ pd 0 0 gp10_ pol gp10_ op_c fg gp10_ db 0 gp10_ lvl 0 gp10_fn [4:0] a101h r1802 (70ah) gpio 11 gp11_ dir gp11_ pu gp11_ pd 0 0 gp11_ pol gp11_ op_c fg gp11_ db 0 gp11_ lvl 0 gp11_fn [4:0] a101h r1824 (720h) pull control (1) 0 0 0 0 dmicd at2_p u dmicd at2_p d dmicd at1_p u dmicd at1_p d mclk 1_pu mclk 1_pd dacd at1_p u dacd at1_p d dacl rclk1 _pu dacl rclk1 _pd bclk1 _pu bclk1 _pd 0000h r1825 (721h) pull control (2) 0 0 0 0 0 0 0 csna ddr_ pd 0 ldo2e na_p d 0 ldo1e na_p d 0 cifmo de_p d spkm ode_ pu 0 0156h r1840 (730h) interrupt status 1 0 0 0 0 0 gp11_ eint gp10_ eint gp9_e int gp8_e int gp7_e int gp6_e int gp5_e int gp4_e int gp3_e int gp2_e int gp1_e int 0000h r1841 (731h) interrupt status 2 temp _war n_ein t dcs_ done _eint wseq _don e_ein t fifos _err_ eint aif2d rc_si g_de t_ein t aif1d rc2_s ig_de t_ein t aif1d rc1_s ig_de t_ein t src2_ lock_ eint src1_ lock_ eint fll2_ lock_ eint fll1_ lock_ eint mic2_ shrt_ eint mic2_ det_e int mic1_ shrt_ eint mic1_ det_e int temp _shut _eint 0000h r1842 (732h) interrupt raw status 2 temp _war n_sts dcs_ done _sts wseq _don e_sts fifos _err_ sts aif2d rc_si g_de t_sts aif1d rc2_s ig_de t_sts aif1d rc1_s ig_de t_sts src2_ lock_ sts src1_ lock_ sts fll2_ lock_ sts fll1_ lock_ sts mic2_ shrt_ sts mic2_ det_s ts mic1_ shrt_ sts mic1_ det_s ts temp _shut _sts 0000h r1848 (738h) interrupt status 1 mask 0 0 0 0 0 im_gp 11_ei nt im_gp 10_ei nt im_gp 9_ein t im_gp 8_ein t im_gp 7_ein t im_gp 6_ein t im_gp 5_ein t im_gp 4_ein t im_gp 3_ein t im_gp 2_ein t im_gp 1_ein t 07ffh r1849 (739h) interrupt status 2 mask im_te mp_w arn_ eint im_dc s_do ne_ei nt im_ws eq_d one_ eint im_fif os_e rr_ei nt im_aif 2drc_ sig_d et_ei nt im_aif 1drc2 _sig_ det_e int im_aif 1drc1 _sig_ det_e int im_sr c2_lo ck_ei nt im_sr c1_lo ck_ei nt im_fl l2_lo ck_ei nt im_fl l1_lo ck_ei nt im_mi c2_sh rt_ei nt im_mi c2_de t_ein t im_mi c1_sh rt_ei nt im_mi c1_de t_ein t im_te mp_s hut_e int ffffh r1856 (740h) interrupt control 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 im_ir q 0000h r1864 (748h) irq debounce 0 0 0 0 0 0 0 0 0 0 temp _war n_db mic2_ shrt_ db mic2_ det_d b mic1_ shrt_ db mic1_ det_d b temp _shut _db 003fh r12288 (3000h) write sequencer 0 0 0 wseq_addr0 [13:0] 0039h r12289 (3001h) write sequencer 1 0 0 0 0 0 0 0 0 wseq_data0 [7:0] 001bh r12290 write sequencer 2 0 0 0 0 0 wseq_data_width0 0 0 0 0 wseq_data_start0 [3:0] 0402h
WM8994 production data w pd, april 2012, rev 4.4 250 reg name 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 default (3002h) [2:0] r12291 (3003h) write sequencer 3 0 0 0 0 0 0 0 wseq _eos0 0 0 0 0 wseq_delay0 [3:0] 0000h r12292 (3004h) write sequencer 4 0 0 wseq_addr1 [13:0] 0001h r12293 (3005h) write sequencer 5 0 0 0 0 0 0 0 0 wseq_data1 [7:0] 0003h r12294 (3006h) write sequencer 6 0 0 0 0 0 wseq_data_width1 [2:0] 0 0 0 0 wseq_data_start1 [3:0] 0200h r12295 (3007h) write sequencer 7 0 0 0 0 0 0 0 wseq _eos1 0 0 0 0 wseq_delay1 [3:0] 0009h (repeated for wseq addr 2 ? 126) r12796 (31fch) write sequencer 508 0 0 wseq_addr127 [13:0] 0000h r12797 (31fdh) write sequencer 509 0 0 0 0 0 0 0 0 wseq_data127 [7:0] 0000h r12798 (31feh) write sequencer 510 0 0 0 0 0 wseq_data_width1 27 [2:0] 0 0 0 0 wseq_data_start127 [3:0] 0000h r12799 (31ffh) write sequencer 511 0 0 0 0 0 0 0 wseq _eos1 27 0 0 0 0 wseq_delay127 [3:0] 0000h
production data WM8994 w pd, april 2012, rev 4.4 251 register bits by address register address bit label default description refer to r0 (00h) software reset 15:0 sw_reset [15:0] 0000_0000 _0000_000 0 writing to this register resets all registers to their default state. (note - control write sequencer registers are not affected by software reset.) reading from this register will indicate device family id 8994h. register 00h software reset register address bit label default description refer to r1 (01h) power managemen t (1) 13 spkoutr_en a 0 spkmixr mixer, spkrvol pga and spkoutr output enable 0 = disabled 1 = enabled 12 spkoutl_en a 0 spkmixl mixer, spklvol pga and spkoutl output enable 0 = disabled 1 = enabled 11 hpout2_ena 0 hpout2 output stage enable 0 = disabled 1 = enabled 9 hpout1l_en a 0 enables hpout1l input stage 0 = disabled 1 = enabled for normal operation, this bit should be set as the first step of the hpout1l enable sequence. 8 hpout1r_en a 0 enables hpout1r input stage 0 = disabled 1 = enabled for normal operation, this bit should be set as the first step of the hpout1r enable sequence. 5 micb2_ena 0 microphone bias 2 enable 0 = disabled 1 = enabled 4 micb1_ena 0 microphone bias 1 enable 0 = disabled 1 = enabled 2:1 vmid_sel [1:0] 00 vmid divider enable and select 00 = vmid disabled (for off mode) 01 = 2 x 40k divider (for normal operation) 10 = 2 x 240k divider (for low power standby) 11 = reserved 0 bias_ena 0 enables the normal bias current generator (for all analogue functions) 0 = disabled 1 = enabled register 01h power management (1)
WM8994 production data w pd, april 2012, rev 4.4 252 register address bit label default description refer to r2 (02h) power managemen t (2) 14 tshut_ena 1 thermal sensor enable 0 = disabled 1 = enabled 13 tshut_opdis 1 thermal shutdown control (causes audio outputs to be disabled if an overtemperature occurs. the thermal sensor must also be enabled.) 0 = disabled 1 = enabled 11 opclk_ena 0 gpio clock output (opclk) enable 0 = disabled 1 = enabled 9 mixinl_ena 0 left input mixer enable (enables mixinl and rxvoice input to mixinl) 0 = disabled 1 = enabled 8 mixinr_ena 0 right input mixer enable (enables mixinr and rxvoice input to mixinr) 0 = disabled 1 = enabled 7 in2l_ena 0 in2l input pga enable 0 = disabled 1 = enabled 6 in1l_ena 0 in1l input pga enable 0 = disabled 1 = enabled 5 in2r_ena 0 in2r input pga enable 0 = disabled 1 = enabled 4 in1r_ena 0 in1r input pga enable 0 = disabled 1 = enabled register 02h power management (2) register address bit label default description refer to r3 (03h) power managemen t (3) 13 lineout1n_e na 0 lineout1n line out and lineout1nmix enable 0 = disabled 1 = enabled 12 lineout1p_e na 0 lineout1p line out and lineout1pmix enable 0 = disabled 1 = enabled 11 lineout2n_e na 0 lineout2n line out and lineout2nmix enable 0 = disabled 1 = enabled 10 lineout2p_e na 0 lineout2p line out and lineout2pmix enable 0 = disabled 1 = enabled 9 spkrvol_en a 0 spkmixr mixer and spkrvol pga enable 0 = disabled 1 = enabled note that spkmixr and spkrvol are also enabled when spkoutr_ena is set.
production data WM8994 w pd, april 2012, rev 4.4 253 register address bit label default description refer to 8 spklvol_en a 0 spkmixl mixer and spklvol pga enable 0 = disabled 1 = enabled note that spkmixl and spklvol are also enabled when spkoutl_ena is set. 7 mixoutlvol_ ena 0 mixoutl left volume control enable 0 = disabled 1 = enabled 6 mixoutrvol _ena 0 mixoutr right volume control enable 0 = disabled 1 = enabled 5 mixoutl_en a 0 mixoutl left output mixer enable 0 = disabled 1 = enabled 4 mixoutr_en a 0 mixoutr right output mixer enable 0 = disabled 1 = enabled register 03h power management (3) register address bit label default description refer to r4 (04h) power managemen t (4) 13 aif2adcl_en a 0 enable aif2adc (left) output path 0 = disabled 1 = enabled 12 aif2adcr_en a 0 enable aif2adc (right) output path 0 = disabled 1 = enabled 11 aif1adc2l_e na 0 enable aif1adc2 (left) output path (aif1, timeslot 1) 0 = disabled 1 = enabled 10 aif1adc2r_e na 0 enable aif1adc2 (right) output path (aif1, timeslot 1) 0 = disabled 1 = enabled 9 aif1adc1l_e na 0 enable aif1adc1 (left) output path (aif1, timeslot 0) 0 = disabled 1 = enabled 8 aif1adc1r_e na 0 enable aif1adc1 (right) output path (aif1, timeslot 0) 0 = disabled 1 = enabled 5 dmic2l_ena 0 digital microphone dmicdat2 left channel enable 0 = disabled 1 = enabled 4 dmic2r_ena 0 digital microphone dmicdat2 right channel enable 0 = disabled 1 = enabled 3 dmic1l_ena 0 digital microphone dmicdat1 left channel enable 0 = disabled 1 = enabled 2 dmic1r_ena 0 digital microphone dmicdat1 right channel enable 0 = disabled
WM8994 production data w pd, april 2012, rev 4.4 254 register address bit label default description refer to 1 = enabled 1 adcl_ena 0 left adc enable 0 = disabled 1 = enabled 0 adcr_ena 0 right adc enable 0 = disabled 1 = enabled register 04h power management (4) register address bit label default description refer to r5 (05h) power managemen t (5) 13 aif2dacl_en a 0 enable aif2dac (left) input path 0 = disabled 1 = enabled 12 aif2dacr_en a 0 enable aif2dac (right) input path 0 = disabled 1 = enabled 11 aif1dac2l_e na 0 enable aif1dac2 (left) input path (aif1, timeslot 1) 0 = disabled 1 = enabled 10 aif1dac2r_e na 0 enable aif1dac2 (right) input path (aif1, timeslot 1) 0 = disabled 1 = enabled 9 aif1dac1l_e na 0 enable aif1dac1 (left) input path (aif1, timeslot 0) 0 = disabled 1 = enabled 8 aif1dac1r_e na 0 enable aif1dac1 (right) input path (aif1, timeslot 0) 0 = disabled 1 = enabled 3 dac2l_ena 0 left dac2 enable 0 = disabled 1 = enabled 2 dac2r_ena 0 right dac2 enable 0 = disabled 1 = enabled 1 dac1l_ena 0 left dac1 enable 0 = disabled 1 = enabled 0 dac1r_ena 0 right dac1 enable 0 = disabled 1 = enabled register 05h power management (5)
production data WM8994 w pd, april 2012, rev 4.4 255 register address bit label default description refer to r6 (06h) power managemen t (6) 5 aif3_tri 0 aif3 audio interface tri-state 0 = aif3 pins operate normally 1 = tri-state all aif3 interface pins note that pins not configured as aif3 functions are not affected by this register. 4:3 aif3_adcdat _src [1:0] 00 gpio9/adcdat3 source select 00 = aif1 adcdat1 01 = aif2 adcdat2 10 = gpio5/dacdat2 11 = reserved note that gpio9 must be configured as adcdat3. for selection 10, the gpio5 pin must also be configured as dacdat2. 2 aif2_adcdat _src 0 gpio7/adcdat2 source select 0 = aif2 adcdat2 1 = gpio8/dacdat3 note that gpio7 must be configured as adcdat2. for selection 1, the gpio8 pin must also be configured as dacdat3. 1 aif2_dacdat _src 0 aif2 dacdat source select 0 = gpio5/dacdat2 1 = gpio8/dacdat3 note that the selected source must be configured as dacdat2 or dacdat3. 0 aif1_dacdat _src 0 aif1 dacdat source select 0 = dacdat1 1 = gpio8/dacdat3 note that, for selection 1, the gpio8 pin must be configured as dacdat3. register 06h power management (6) register address bit label default description refer to r21 (15h) input mixer (1) 8 in1rp_mixinr _boost 0 in1rp pin (pga bypass) to mixinr gain boost. this bit selects the maximum gain setting of the in1rp_mixinr_vol register. 0 = maximum gain is +6db 1 = maximum gain is +15db 7 in1lp_mixinl _boost 0 in1lp pin (pga bypass) to mixinl gain boost. this bit selects the maximum gain setting of the in1lp_mixinl_vol register. 0 = maximum gain is +6db 1 = maximum gain is +15db 6 inputs_clam p 0 input pad vmid clamp 0 = clamp de-activated 1 = clamp activated register 15h input mixer (1)
WM8994 production data w pd, april 2012, rev 4.4 256 register address bit label default description refer to r24 (18h) left line input 1&2 volume 8 in1_vu 0 input pga volume update writing a 1 to this bit will cause in1l and in1r input pga volumes to be updated simultaneously 7 in1l_mute 1 in1l pga mute 0 = disable mute 1 = enable mute 6 in1l_zc 0 in1l pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in1l_vol [4:0] 0_1011 in1l volume -16.5db to +30db in 1.5db steps register 18h left line input 1&2 volume register address bit label default description refer to r25 (19h) left line input 3&4 volume 8 in2_vu 0 input pga volume update writing a 1 to this bit will cause in2l and in2r input pga volumes to be updated simultaneously 7 in2l_mute 1 in2l pga mute 0 = disable mute 1 = enable mute 6 in2l_zc 0 in2l pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in2l_vol [4:0] 0_1011 in2l volume -16.5db to +30db in 1.5db steps register 19h left line input 3&4 volume register address bit label default description refer to r26 (1ah) right line input 1&2 volume 8 in1_vu 0 input pga volume update writing a 1 to this bit will cause in1l and in1r input pga volumes to be updated simultaneously 7 in1r_mute 1 in1r pga mute 0 = disable mute 1 = enable mute 6 in1r_zc 0 in1r pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in1r_vol [4:0] 0_1011 in1r volume -16.5db to +30db in 1.5db steps register 1ah right line input 1&2 volume
production data WM8994 w pd, april 2012, rev 4.4 257 register address bit label default description refer to r27 (1bh) right line input 3&4 volume 8 in2_vu 0 input pga volume update writing a 1 to this bit will cause in2l and in2r input pga volumes to be updated simultaneously 7 in2r_mute 1 in2r pga mute 0 = disable mute 1 = enable mute 6 in2r_zc 0 in2r pga zero cross detector 0 = change gain immediately 1 = change gain on zero cross only 4:0 in2r_vol [4:0] 0_1011 in2r volume -16.5db to +30db in 1.5db steps register 1bh right line input 3&4 volume register address bit label default description refer to r28 (1ch) left output volume 8 hpout1_vu 0 headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1l_zc 0 hpout1lvol (left headphone output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 hpout1l_mu te_n 1 hpout1lvol (left headphone output pga) mute 0 = mute 1 = un-mute 5:0 hpout1l_vo l [5:0] 10_1101 hpout1lvol (left headphone output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db register 1ch left output volume register address bit label default description refer to r29 (1dh) right output volume 8 hpout1_vu 0 headphone output pga volume update writing a 1 to this bit will update hpout1lvol and hpout1rvol volumes simultaneously. 7 hpout1r_zc 0 hpout1rvol (right headphone output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 hpout1r_mu te_n 1 hpout1rvol (right headphone output pga) mute 0 = mute 1 = un-mute 5:0 hpout1r_vo l [5:0] 10_1101 hpout1rvol (right headphone output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db register 1dh right output volume
WM8994 production data w pd, april 2012, rev 4.4 258 register address bit label default description refer to r30 (1eh) line outputs volume 6 lineout1n_m ute 1 lineout1n line output mute 0 = un-mute 1 = mute 5 lineout1p_m ute 1 lineout1p line output mute 0 = un-mute 1 = mute 4 lineout1_vo l 0 lineout1 line output volume 0 = 0db 1 = -6db applies to both lineout1n and lineout1p 2 lineout2n_m ute 1 lineout2n line output mute 0 = un-mute 1 = mute 1 lineout2p_m ute 1 lineout2p line output mute 0 = un-mute 1 = mute 0 lineout2_vo l 0 lineout2 line output volume 0 = 0db 1 = -6db applies to both lineout2n and lineout2p register 1eh line outputs volume register address bit label default description refer to r31 (1fh) hpout2 volume 5 hpout2_mut e 1 hpout2 (earpiece driver) mute 0 = un-mute 1 = mute 4 hpout2_vol 0 hpout2 (earpiece driver) volume 0 = 0db 1 = -6db register 1fh hpout2 volume register address bit label default description refer to r32 (20h) left opga volume 8 mixout_vu 0 mixer output pga volume update writing a 1 to this bit will update mixoutlvol and mixoutrvol volumes simultaneously. 7 mixoutl_zc 0 mixoutlvol (left mixer output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 mixoutl_mu te_n 1 mixoutlvol (left mixer output pga) mute 0 = mute 1 = un-mute 5:0 mixoutl_vol [5:0] 11_1001 mixoutlvol (left mixer output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db register 20h left opga volume
production data WM8994 w pd, april 2012, rev 4.4 259 register address bit label default description refer to r33 (21h) right opga volume 8 mixout_vu 0 mixer output pga volume update writing a 1 to this bit will update mixoutlvol and mixoutrvol volumes simultaneously. 7 mixoutr_zc 0 mixoutrvol (right mixer output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 mixoutr_mu te_n 1 mixoutlvol (right mixer output pga) mute 0 = mute 1 = un-mute 5:0 mixoutr_vo l [5:0] 11_1001 mixoutrvol (right mixer output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db register 21h right opga volume register address bit label default description refer to r34 (22h) spkmixl attenuation 8 spkab_ref_ sel 0 selects reference for speaker in class ab mode 0 = spkvdd/2 1 = vmid 6 dac2l_spkmi xl_vol 0 left dac2 to spkmixl fine volume control 0 = 0db 1 = -3db 5 mixinl_spkmi xl_vol 0 mixinl (left adc bypass) to spkmixl fine volume control 0 = 0db 1 = -3db 4 in1lp_spkmi xl_vol 0 in1lp to spkmixl fine volume control 0 = 0db 1 = -3db 3 mixoutl_spk mixl_vol 0 left mixer output to spkmixl fine volume control 0 = 0db 1 = -3db 2 dac1l_spkmi xl_vol 0 left dac1 to spkmixl fine volume control 0 = 0db 1 = -3db 1:0 spkmixl_vol [1:0] 11 left speaker mixer volume control 00 = 0db 01 = -6db 10 = -12db 11 = mute register 22h spkmixl attenuation
WM8994 production data w pd, april 2012, rev 4.4 260 register address bit label default description refer to r35 (23h) spkmixr attenuation 8 spkout_cla ssab 0 speaker class ab mode enable 0 = class d mode 1 = class ab mode 6 dac2r_spkm ixr_vol 0 right dac2 to spkmixr fine volume control 0 = 0db 1 = -3db 5 mixinr_spkm ixr_vol 0 mixinr (right adc bypass) to spkmixr fine volume control 0 = 0db 1 = -3db 4 in1rp_spkmi xr_vol 0 in1rp to spkmixr fine volume control 0 = 0db 1 = -3db 3 mixoutr_sp kmixr_vol 0 right mixer output to spkmixr fine volume control 0 = 0db 1 = -3db 2 dac1r_spkm ixr_vol 0 right dac1 to spkmixr fine volume control 0 = 0db 1 = -3db 1:0 spkmixr_vo l [1:0] 11 right speaker mixer volume control 00 = 0db 01 = -6db 10 = -12db 11 = mute register 23h spkmixr attenuation register address bit label default description refer to r36 (24h) spkout mixers 5 in2lrp_to_s pkoutl 0 direct voice (vrxn-vrxp) to left speaker mute 0 = mute 1 = un-mute 4 spkmixl_to_ spkoutl 1 spkmixl left speaker mixer to left speaker mute 0 = mute 1 = un-mute 3 spkmixr_to_ spkoutl 0 spkmixr right speaker mixer to left speaker mute 0 = mute 1 = un-mute 2 in2lrp_to_s pkoutr 0 direct voice (vrxn-vrxp) to right speaker mute 0 = mute 1 = un-mute 1 spkmixl_to_ spkoutr 0 spkmixl left speaker mixer to right speaker mute 0 = mute 1 = un-mute 0 spkmixr_to_ spkoutr 1 spkmixr right speaker mixer to right speaker mute 0 = mute 1 = un-mute register 24h spkout mixers
production data WM8994 w pd, april 2012, rev 4.4 261 register address bit label default description refer to r37 (25h) classd 5:3 spkoutl_bo ost [2:0] 000 left speaker gain boost 000 = 1.00x boost (+0db) 001 = 1.19x boost (+1.5db) 010 = 1.41x boost (+3.0db) 011 = 1.68x boost (+4.5db) 100 = 2.00x boost (+6.0db) 101 = 2.37x boost (+7.5db) 110 = 2.81x boost (+9.0db) 111 = 3.98x boost (+12.0db) 2:0 spkoutr_bo ost [2:0] 000 right speaker gain boost 000 = 1.00x boost (+0db) 001 = 1.19x boost (+1.5db) 010 = 1.41x boost (+3.0db) 011 = 1.68x boost (+4.5db) 100 = 2.00x boost (+6.0db) 101 = 2.37x boost (+7.5db) 110 = 2.81x boost (+9.0db) 111 = 3.98x boost (+12.0db) register 25h classd register address bit label default description refer to r38 (26h) speaker volume left 8 spkout_vu 0 speaker output pga volume update writing a 1 to this bit will update spklvol and spkrvol volumes simultaneously. 7 spkoutl_zc 0 spklvol (left speaker output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 spkoutl_mu te_n 1 spklvol (left speaker output pga) mute 0 = mute 1 = un-mute 5:0 spkoutl_vo l [5:0] 11_1001 spklvol (left speaker output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db register 26h speaker volume left
WM8994 production data w pd, april 2012, rev 4.4 262 register address bit label default description refer to r39 (27h) speaker volume right 8 spkout_vu 0 speaker output pga volume update writing a 1 to this bit will update spklvol and spkrvol volumes simultaneously. 7 spkoutr_zc 0 spkrvol (right speaker output pga) zero cross enable 0 = zero cross disabled 1 = zero cross enabled 6 spkoutr_mu te_n 1 spkrvol (right speaker output pga) mute 0 = mute 1 = un-mute 5:0 spkoutr_vo l [5:0] 11_1001 spkrvol (right speaker output pga) volume -57db to +6db in 1db steps 00_0000 = -57db 00_0001 = -56db ? (1db steps) 11_1111 = +6db register 27h speaker volume right register address bit label default description refer to r40 (28h) input mixer (2) 7 in2lp_to_in2 l 0 in2l pga non-inverting input select 0 = connected to vmid 1 = connected to in2lp note that vmid_buf_ena must be set when using in2l connected to vmid. 6 in2ln_to_in2 l 0 in2l pga inverting input select 0 = not connected 1 = connected to in2ln 5 in1lp_to_in1 l 0 in1l pga non-inverting input select 0 = connected to vmid 1 = connected to in1lp note that vmid_buf_ena must be set when using in1l connected to vmid. 4 in1ln_to_in1 l 0 in1l pga inverting input select 0 = not connected 1 = connected to in1ln 3 in2rp_to_in2 r 0 in2r pga non-inverting input select 0 = connected to vmid 1 = connected to in2rp note that vmid_buf_ena must be set when using in2r connected to vmid. 2 in2rn_to_in2 r 0 in2r pga inverting input select 0 = not connected 1 = connected to in2rn 1 in1rp_to_in1 r 0 in1r pga non-inverting input select 0 = connected to vmid 1 = connected to in1rp note that vmid_buf_ena must be set when using in1r connected to vmid. 0 in1rn_to_in1 r 0 in1r pga inverting input select 0 = not connected 1 = connected to in1rn register 28h input mixer (2)
production data WM8994 w pd, april 2012, rev 4.4 263 register address bit label default description refer to r41 (29h) input mixer (3) 8 in2l_to_mixi nl 0 in2l pga output to mixinl mute 0 = mute 1 = un-mute 7 in2l_mixinl_ vol 0 in2l pga output to mixinl gain 0 = 0db 1 = +30db 5 in1l_to_mixi nl 0 in1l pga output to mixinl mute 0 = mute 1 = un-mute 4 in1l_mixinl_ vol 0 in1l pga output to mixinl gain 0 = 0db 1 = +30db 2:0 mixoutl_mix inl_vol [2:0] 000 record path mixoutl to mixinl gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db register 29h input mixer (3) register address bit label default description refer to r42 (2ah) input mixer (4) 8 in2r_to_mixi nr 0 in2r pga output to mixinr mute 0 = mute 1 = un-mute 7 in2r_mixinr_ vol 0 in2r pga output to mixinr gain 0 = 0db 1 = +30db 5 in1r_to_mixi nr 0 in1r pga output to mixinr mute 0 = mute 1 = un-mute 4 in1r_mixinr_ vol 0 in1r pga output to mixinr gain 0 = 0db 1 = +30db 2:0 mixoutr_mix inr_vol [2:0] 000 record path mixoutr to mixinr gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db register 2ah input mixer (4)
WM8994 production data w pd, april 2012, rev 4.4 264 register address bit label default description refer to r43 (2bh) input mixer (5) 8:6 in1lp_mixinl _vol [2:0] 000 in1lp pin (pga bypass) to mixinl gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db (see note below). when in1lp_mixinl_boost is set, then the maximum gain setting is increased to +15db, ie. 111 = +15db. note that vmid_buf_ena must be set when using the in1lp (pga bypass) input to mixinl. 2:0 in2lrp_mixin l_vol [2:0] 000 rxvoice differential input (vrxp-vrxn) to mixinl gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db register 2bh input mixer (5) register address bit label default description refer to r44 (2ch) input mixer (6) 8:6 in1rp_mixinr _vol [2:0] 000 in1rp pin (pga bypass) to mixinr gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db (see note below). when in1rp_mixinr_boost is set, then the maximum gain setting is increased to +15db, ie. 111 = +15db. note that vmid_buf_ena must be set when using the in1rp (pga bypass) input to mixinr. 2:0 in2lrp_mixin r_vol [2:0] 000 rxvoice differential input (vrxp-vrxn) to mixinr gain and mute 000 = mute 001 = -12db 010 = -9db 011 = -6db 100 = -3db 101 = 0db 110 = +3db 111 = +6db register 2ch input mixer (6)
production data WM8994 w pd, april 2012, rev 4.4 265 register address bit label default description refer to r45 (2dh) output mixer (1) 8 dac1l_to_h pout1l 0 hpout1lvol (left headphone output pga) input select 0 = mixoutl 1 = dac1l 7 mixinr_to_m ixoutl 0 mixinr output (right adc bypass) to mixoutl mute 0 = mute 1 = un-mute 6 mixinl_to_mi xoutl 0 mixinl output (left adc bypass) to mixoutl mute 0 = mute 1 = un-mute 5 in2rn_to_mi xoutl 0 in2rn to mixoutl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2rn input to mixoutl. 4 in2ln_to_mi xoutl 0 in2ln to mixoutl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2ln input to mixoutl. 3 in1r_to_mix outl 0 in1r pga output to mixoutl mute 0 = mute 1 = un-mute 2 in1l_to_mix outl 0 in1l pga output to mixoutl mute 0 = mute 1 = un-mute 1 in2lp_to_mi xoutl 0 in2lp to mixoutl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2lp input to mixoutl. 0 dac1l_to_mi xoutl 0 left dac1 to mixoutl mute 0 = mute 1 = un-mute register 2dh output mixer (1) register address bit label default description refer to r46 (2eh) output mixer (2) 8 dac1r_to_h pout1r 0 hpout1rvol (right headphone output pga) input select 0 = mixoutr 1 = dac1r 7 mixinl_to_mi xoutr 0 mixinl output (left adc bypass) to mixoutr mute 0 = mute 1 = un-mute 6 mixinr_to_m ixoutr 0 mixinr output (right adc bypass) to mixoutr mute 0 = mute 1 = un-mute 5 in2ln_to_mi xoutr 0 in2ln to mixoutr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the
WM8994 production data w pd, april 2012, rev 4.4 266 register address bit label default description refer to in2ln input to mixoutr. 4 in2rn_to_mi xoutr 0 in2rn to mixoutr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2rn input to mixoutr. 3 in1l_to_mix outr 0 in1l pga output to mixoutr mute 0 = mute 1 = un-mute 2 in1r_to_mix outr 0 in1r pga output to mixoutr mute 0 = mute 1 = un-mute 1 in2rp_to_mi xoutr 0 in2rp to mixoutr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in2rp input to mixoutr. 0 dac1r_to_mi xoutr 0 right dac1 to mixoutr mute 0 = mute 1 = un-mute register 2eh output mixer (2) register address bit label default description refer to r47 (2fh) output mixer (3) 11:9 in2lp_mixou tl_vol [2:0] 000 in2lp to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 8:6 in2ln_mixou tl_vol [2:0] 000 in2ln to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 5:3 in1r_mixout l_vol [2:0] 000 in1r pga output to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 2:0 in1l_mixout l_vol [2:0] 000 in1l pga output to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db register 2fh output mixer (3)
production data WM8994 w pd, april 2012, rev 4.4 267 register address bit label default description refer to r48 (30h) output mixer (4) 11:9 in2rp_mixou tr_vol [2:0] 000 in2rp to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 8:6 in2rn_mixou tr_vol [2:0] 000 in2rn to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 5:3 in1l_mixout r_vol [2:0] 000 in1l pga output to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 2:0 in1r_mixout r_vol [2:0] 000 in1r pga output to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db register 30h output mixer (4) register address bit label default description refer to r49 (31h) output mixer (5) 11:9 dac1l_mixo utl_vol [2:0] 000 left dac1 to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 8:6 in2rn_mixou tl_vol [2:0] 000 in2rn to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 5:3 mixinr_mixo utl_vol [2:0] 000 mixinr output (right adc bypass) to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 2:0 mixinl_mixo utl_vol [2:0] 000 mixinl output (left adc bypass) to mixoutl volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db register 31h output mixer (5)
WM8994 production data w pd, april 2012, rev 4.4 268 register address bit label default description refer to r50 (32h) output mixer (6) 11:9 dac1r_mixo utr_vol [2:0] 000 right dac1 to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 8:6 in2ln_mixou tr_vol [2:0] 000 in2ln to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 5:3 mixinl_mixo utr_vol [2:0] 000 mixinl output (left adc bypass) to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db 2:0 mixinr_mixo utr_vol [2:0] 000 mixinr output (right adc bypass) to mixoutr volume 0db to -21db in 3db steps 000 = 0db 001 = -3db ?(3db steps) 111 = -21db register 32h output mixer (6) register address bit label default description refer to r51 (33h) hpout2 mixer 5 in2lrp_to_h pout2 0 direct voice (vrxn-vrxp) to earpiece driver 0 = mute 1 = un-mute 4 mixoutlvol_ to_hpout2 0 mixoutlvol (left output mixer pga) to earpiece driver 0 = mute 1 = un-mute 3 mixoutrvol _to_hpout2 0 mixoutrvol (right output mixer pga) to earpiece driver 0 = mute 1 = un-mute register 33h hpout2 mixer
production data WM8994 w pd, april 2012, rev 4.4 269 register address bit label default description refer to r52 (34h) line mixer (1) 6 mixoutl_to_ lineout1n 0 mixoutl to single-ended line output on lineout1n 0 = mute 1 = un-mute (lineout1_mode = 1) 5 mixoutr_to _lineout1n 0 mixoutr to single-ended line output on lineout1n 0 = mute 1 = un-mute (lineout1_mode = 1) 4 lineout1_mo de 0 lineout1 mode select 0 = differential 1 = single-ended 2 in1r_to_line out1p 0 in1r input pga to differential line output on lineout1 0 = mute 1 = un-mute (lineout1_mode = 0) 1 in1l_to_line out1p 0 in1l input pga to differential line output on lineout1 0 = mute 1 = un-mute (lineout1_mode = 0) 0 mixoutl_to_ lineout1p 0 differential mode (lineout1_mode = 0): mixoutl to differential output on lineout1 0 = mute 1 = un-mute single ended mode (lineout1_mode = 1): mixoutl to single-ended line output on lineout1p 0 = mute 1 = un-mute register 34h line mixer (1) register address bit label default description refer to r53 (35h) line mixer (2) 6 mixoutr_to _lineout2n 0 mixoutr to single-ended line output on lineout2n 0 = mute 1 = un-mute (lineout2_mode = 1) 5 mixoutl_to_ lineout2n 0 mixoutl to single-ended line output on lineout2n 0 = mute 1 = un-mute (lineout2_mode = 1) 4 lineout2_mo de 0 lineout2 mode select 0 = differential 1 = single-ended 2 in1l_to_line out2p 0 in1l input pga to differential line output on lineout2 0 = mute 1 = un-mute (lineout2_mode = 0)
WM8994 production data w pd, april 2012, rev 4.4 270 register address bit label default description refer to 1 in1r_to_line out2p 0 in1r input pga to differential line output on lineout2 0 = mute 1 = un-mute (lineout2_mode = 0) 0 mixoutr_to _lineout2p 0 differential mode (lineout2_mode = 0): mixoutr to differential output on lineout2 0 = mute 1 = un-mute single-ended mode (lineout2_mode = 0): mixoutr to single-ended line output on lineout2p 0 = mute 1 = un-mute register 35h line mixer (2) register address bit label default description refer to r54 (36h) speaker mixer 9 dac2l_to_s pkmixl 0 left dac2 to spkmixl mute 0 = mute 1 = un-mute 8 dac2r_to_s pkmixr 0 right dac2 to spkmixr mute 0 = mute 1 = un-mute 7 mixinl_to_s pkmixl 0 mixinl (left adc bypass) to spkmixl mute 0 = mute 1 = un-mute 6 mixinr_to_s pkmixr 0 mixinr (right adc bypass) to spkmixr mute 0 = mute 1 = un-mute 5 in1lp_to_sp kmixl 0 in1lp to spkmixl mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in1lp input to spkmixl. 4 in1rp_to_sp kmixr 0 in1rp to spkmixr mute 0 = mute 1 = un-mute note that vmid_buf_ena must be set when using the in1rp input to spkmixr. 3 mixoutl_to_ spkmixl 0 left mixer output to spkmixl mute 0 = mute 1 = un-mute 2 mixoutr_to _spkmixr 0 right mixer output to spkmixr mute 0 = mute 1 = un-mute 1 dac1l_to_s pkmixl 0 left dac1 to spkmixl mute 0 = mute 1 = un-mute 0 dac1r_to_s pkmixr 0 right dac1 to spkmixr mute 0 = mute 1 = un-mute
production data WM8994 w pd, april 2012, rev 4.4 271 register 36h speaker mixer register address bit label default description refer to r55 (37h) additional control 7 lineout1_fb 0 enable ground loop noise feedback on lineout1 0 = disabled 1 = enabled 6 lineout2_fb 0 enable ground loop noise feedback on lineout2 0 = disabled 1 = enabled 0 vroi 0 buffered vmid to analogue line output resistance (disabled outputs) 0 = 20k ? from buffered vmid to output 1 = 500 ? from buffered vmid to output register 37h additional control register address bit label default description refer to r56 (38h) antipop (1) 7 lineout_vmi d_buf_ena 0 enables vmid reference for line outputs in single- ended mode 0 = disabled 1 = enabled 6 hpout2_in_e na 0 hpout2mix mixer and input stage enable 0 = disabled 1 = enabled 5 lineout1_di sch 0 discharges lineout1p and lineout1n outputs 0 = not active 1 = actively discharging lineout1p and lineout1n 4 lineout2_di sch 0 discharges lineout2p and lineout2n outputs 0 = not active 1 = actively discharging lineout2p and lineout2n register 38h antipop (1) register address bit label default description refer to r57 (39h) antipop (2) 8 micb2_disch 0 microphone bias 2 discharge 0 = micbias2 floating when disabled 1 = micbias2 discharged when disabled 7 micb1_disch 0 microphone bias 1 discharge 0 = micbias1 floating when disabled 1 = micbias1 discharged when disabled 6:5 vmid_ramp [1:0] 00 vmid soft start enable / slew rate control 00 = normal slow start 01 = normal fast start 10 = soft slow start 11 = soft fast start if vmid_ramp = 1x is selected for vmid start-up or shut-down, then the soft-start circuit must be reset by setting vmid_ramp=00 after vmid is disabled, before vmid is re-enabled. vmid is disabled / enabled using the vmid_sel register. 3 vmid_buf_en a 0 vmid buffer enable 0 = disabled
WM8994 production data w pd, april 2012, rev 4.4 272 register address bit label default description refer to 1 = enabled (provided vmid_sel > 00) 2 startup_bia s_ena 0 enables the start-up bias current generator 0 = disabled 1 = enabled 1 bias_src 0 selects the bias current source 0 = normal bias 1 = start-up bias 0 vmid_disch 0 connects vmid to ground 0 = disabled 1 = enabled register 39h antipop (2) register address bit label default description refer to r58 (3ah) micbias 7:6 micd_scthr [1:0] 00 micbias short circuit current threshold 00 = 300ua 01 = 600ua 10 = 1200ua 11 = 2400ua these values are for avdd1=3.0v and scale proportionally with avdd1. 5:3 micd_thr [2:0] 000 micbias current detect threshold 00x = 150ua 01x = 300ua 10x = 600ua 11x = 1200ua these values are for avdd1=3.0v and scale proportionally with avdd1. 2 micd_ena 0 micbias current detect / short circuit threshold enable 0 = disabled 1 = enabled 1 micb2_lvl 0 microphone bias 2 voltage control 0 = 0.9 * avdd1 1 = 0.65 * avdd1 0 micb1_lvl 0 microphone bias 1 voltage control 0 = 0.9 * avdd1 1 = 0.65 * avdd1 register 3ah micbias register address bit label default description refer to r59 (3bh) ldo 1 3:1 ldo1_vsel [2:0] 110 ldo1 output voltage select 2.4v to 3.1v in 100mv steps 000 = 2.4v 001 = 2.5v 010 = 2.6v 011 = 2.7v 100 = 2.8v 101 = 2.9v 110 = 3.0v
production data WM8994 w pd, april 2012, rev 4.4 273 register address bit label default description refer to 111 = 3.1v 0 ldo1_disch 1 ldo1 discharge select 0 = ldo1 floating when disabled 1 = ldo1 discharged when disabled register 3bh ldo 1 register address bit label default description refer to r60 (3ch) ldo 2 2:1 ldo2_vsel [1:0] 01 ldo2 output voltage select 0.9v to 1.2v in 100mv steps 00 = 0.9v 01 = 1.0v 10 = 1.1v 11 = 1.2v 0 ldo2_disch 1 ldo2 discharge select 0 = ldo2 floating when disabled 1 = ldo2 discharged when disabled register 3ch ldo 2 register address bit label default description refer to r76 (4ch) charge pump (1) 15 cp_ena 0 enable charge-pump digits 0 = disable 1 = enable register 4ch charge pump (1) register address bit label default description refer to r77 (4dh) charge pump (2) 15 cp_disch 1 charge pump discharge select 0 = charge pump outputs floating when disabled 1 = charge pump outputs discharged when disabled register 4dh charge pump (2) register address bit label default description refer to r81 (51h) class w (1) 9:8 cp_dyn_src _sel [1:0] 00 selects the digital audio source for envelope tracking 00 = aif1, dac timeslot 0 01 = aif1, dac timeslot 1 10 = aif2, dac data 11 = reserved 0 cp_dyn_pwr 0 enable dynamic charge pump power control 0 = charge pump controlled by volume register settings (class g) 1 = charge pump controlled by real-time audio level (class w) register 51h class w (1)
WM8994 production data w pd, april 2012, rev 4.4 274 register address bit label default description refer to r84 (54h) dc servo (1) 13 dcs_trig_si ngle_1 0 writing 1 to this bit selects a single dc offset correction for hpout1r. in readback, a value of 1 indicates that the dc servo single correction is in progress. 12 dcs_trig_si ngle_0 0 writing 1 to this bit selects a single dc offset correction for hpout1l. in readback, a value of 1 indicates that the dc servo single correction is in progress. 9 dcs_trig_se ries_1 0 writing 1 to this bit selects a series of dc offset corrections for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 8 dcs_trig_se ries_0 0 writing 1 to this bit selects a series of dc offset corrections for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 5 dcs_trig_st artup_1 0 writing 1 to this bit selects start-up dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 4 dcs_trig_st artup_0 0 writing 1 to this bit selects start-up dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo start-up correction is in progress. 3 dcs_trig_da c_wr_1 0 writing 1 to this bit selects dac write dc servo mode for hpout1r. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 2 dcs_trig_da c_wr_0 0 writing 1 to this bit selects dac write dc servo mode for hpout1l. in readback, a value of 1 indicates that the dc servo dac write correction is in progress. 1 dcs_ena_ch an_1 0 dc servo enable for hpout1r 0 = disabled 1 = enabled 0 dcs_ena_ch an_0 0 dc servo enable for hpout1l 0 = disabled 1 = enabled register 54h dc servo (1) register address bit label default description refer to r85 (55h) dc servo (2) 11:5 dcs_series_ no_01 [6:0] 010_1010 number of dc servo updates to perform in a series event. 0 = 1 update 1 = 2 updates ... 127 = 128 updates 3:0 dcs_timer_p eriod_01 [3:0] 1010 time between periodic updates. time is calculated as 0.251s x (2^period), where period = dcs_timer_period_01. 0000 = off 0001 = 0.502s ?. 1010 = 257s (4min 17s) 1111 = 8225s (2hr 17min) register 55h dc servo (2)
production data WM8994 w pd, april 2012, rev 4.4 275 register address bit label default description refer to r88 (58h) dc servo readback 9:8 dcs_cal_co mplete [1:0] 00 dc servo complete status 0 = dac write or start-up dc servo mode not completed. 1 = dac write or start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l 5:4 dcs_dac_wr _complete [1:0] 00 dc servo dac write status 0 = dac write dc servo mode not completed. 1 = dac write dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l 1:0 dcs_startu p_complete [1:0] 00 dc servo start-up status 0 = start-up dc servo mode not completed. 1 = start-up dc servo mode complete. bit [1] = hpout1r bit [0] = hpout1l register 58h dc servo readback register address bit label default description refer to r89 (59h) dc servo write val 15:8 dcs_dac_wr _val_1 [7:0] 0000_0000 writing to this field sets the dc offset value for hpout1r in dac write dc servo mode. reading this field gives the current dc offset value for hpout1r. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv 7:0 dcs_dac_wr _val_0 [7:0] 0000_0000 writing to this field sets the dc offset value for hpout1l in dac write dc servo mode. reading this field gives the current dc offset value for hpout1l. two?s complement format. lsb is 0.25mv. range is -32mv to +31.75mv register 59h dc servo write val register address bit label default description refer to r96 (60h) analogue hp (1) 7 hpout1l_rm v_short 0 removes hpout1l short 0 = hpout1l short enabled 1 = hpout1l short removed for normal operation, this bit should be set as the final step of the hpout1l enable sequence. 6 hpout1l_ou tp 0 enables hpout1l output stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after the dc offset cancellation has been scheduled. 5 hpout1l_dl y 0 enables hpout1l intermediate stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after
WM8994 production data w pd, april 2012, rev 4.4 276 register address bit label default description refer to the output signal path has been configured, and before dc offset cancellation is scheduled. this bit should be set with at least 20us delay after hpout1l_ena. 3 hpout1r_rm v_short 0 removes hpout1r short 0 = hpout1r short enabled 1 = hpout1r short removed for normal operation, this bit should be set as the final step of the hpout1r enable sequence. 2 hpout1r_ou tp 0 enables hpout1r output stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after the dc offset cancellation has been scheduled. 1 hpout1r_dl y 0 enables hpout1r intermediate stage 0 = disabled 1 = enabled for normal operation, this bit should be set to 1 after the output signal path has been configured, and before dc offset cancellation is scheduled. this bit should be set with at least 20us delay after hpout1r_ena. register 60h analogue hp (1) register address bit label default description refer to r256 (0100h) chip revision 3:0 chip_rev [3:0] chip revision register 0100h chip revision register address bit label default description refer to r257 (0101h) control interface 15 1 reserved - do not change 6 spi_contrd 0 enable continuous read mode in spi (3-wire/4-wire) modes 0 = disabled 1 = enabled 5 spi_4wire 0 spi control mode select 0 = 3-wire using bidirectional sda 1 = 4-wire using sdout 4 spi_cfg 0 sda/sdout pin configuration 0 = cmos 1 = open drain (spi_4wire = 0) 1 = wired ?or? (spi_4wire = 1) 2 auto_inc 1 enables address auto-increment (applies to 2-wire i2c mode only) 0 = disabled 1 = enabled register 0101h control interface
production data WM8994 w pd, april 2012, rev 4.4 277 register address bit label default description refer to r272 (0110h) write sequencer ctrl (1) 15 wseq_ena 0 write sequencer enable. 0 = disabled 1 = enabled 9 wseq_abor t 0 writing a 1 to this bit aborts the current sequence and returns control of the device back to the serial control interface. 8 wseq_start 0 writing a 1 to this bit starts the write sequencer at the index location selected by wseq_start_index. the sequence continues until it reaches an ?end of sequence? flag. at the end of the sequence, this bit will be reset by the write sequencer. 6:0 wseq_start _index [6:0] 000_0000 sequence start index. this field determines the memory location of the first command in the selected sequence. there are 127 write sequencer ram addresses: 00h = wseq_addr0 (r12288) 01h = wseq_addr1 (r12292) 02h = wseq_addr2 (r12296) ?. 7fh = wseq_addr127 (r12796) register 0110h write sequencer ctrl (1) register address bit label default description refer to r273 (0111h) write sequencer ctrl (2) 8 wseq_busy 0 sequencer busy flag (read only). 0 = sequencer idle 1 = sequencer busy note: it is not possible to write to control registers via the control interface while the sequencer is busy. 6:0 wseq_curr ent_index [6:0] 000_0000 sequence current index. this indicates the memory location of the most recently accessed command in the write sequencer memory. coding is the same as wseq_start_index. register 0111h write sequencer ctrl (2) register address bit label default description refer to r512 (0200h) aif1 clocking (1) 4:3 aif1clk_src [1:0] 00 aif1clk source select 00 = mclk1 01 = mclk2 10 = fll1 11 = fll2 2 aif1clk_inv 0 aif1clk invert 0 = aif1clk not inverted 1 = aif1clk inverted 1 aif1clk_div 0 aif1clk divider 0 = aif1clk 1 = aif1clk / 2 0 aif1clk_ena 0 aif1clk enable 0 = disabled 1 = enabled register 0200h aif1 clocking (1)
WM8994 production data w pd, april 2012, rev 4.4 278 register address bit label default description refer to r513 (0201h) aif1 clocking (2) 5:3 aif1dac_div [2:0] 000 selects the aif1 input path sample rate relative to the aif1 output path sample rate. this field should only be changed from default in modes where the aif1 input path sample rate is slower than the aif1 output path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved 2:0 aif1adc_div [2:0] 000 selects the aif1 output path sample rate relative to the aif1 input path sample rate. this field should only be changed from default in modes where the aif1 output path sample rate is slower than the aif1 input path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved register 0201h aif1 clocking (2) register address bit label default description refer to r516 (0204h) aif2 clocking (1) 4:3 aif2clk_src [1:0] 00 aif2clk source select 00 = mclk1 01 = mclk2 10 = fll1 11 = fll2 2 aif2clk_inv 0 aif2clk invert 0 = aif2clk not inverted 1 = aif2clk inverted 1 aif2clk_div 0 aif2clk divider 0 = aif2clk 1 = aif2clk / 2 0 aif2clk_ena 0 aif2clk enable 0 = disabled 1 = enabled register 0204h aif2 clocking (1)
production data WM8994 w pd, april 2012, rev 4.4 279 register address bit label default description refer to r517 (0205h) aif2 clocking (2) 5:3 aif2dac_div [2:0] 000 selects the aif2 input path sample rate relative to the aif2 output path sample rate. this field should only be changed from default in modes where the aif2 input path sample rate is slower than the aif2 output path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved 2:0 aif2adc_div [2:0] 000 selects the aif2 output path sample rate relative to the aif2 input path sample rate. this field should only be changed from default in modes where the aif2 output path sample rate is slower than the aif2 input path sample rate. 000 = divide by 1 001 = divide by 1.5 010 = divide by 2 011 = divide by 3 100 = divide by 4 101 = divide by 5.5 110 = divide by 6 111 = reserved register 0205h aif2 clocking (2) register address bit label default description refer to r520 (0208h) clocking (1) 4 toclk_ena 0 slow clock (toclk) enable 0 = disabled 1 = enabled this clock is required for zero-cross timeout. 3 aif1dspclk_ ena 0 aif1 processing clock enable 0 = disabled 1 = enabled 2 aif2dspclk_ ena 0 aif2 processing clock enable 0 = disabled 1 = enabled 1 sysdspclk_ ena 0 digital mixing processor clock enable 0 = disabled 1 = enabled 0 sysclk_src 0 sysclk source select 0 = aif1clk 1 = aif2clk register 0208h clocking (1)
WM8994 production data w pd, april 2012, rev 4.4 280 register address bit label default description refer to r521 (0209h) clocking (2) 10:8 toclk_div [2:0] 000 slow clock (toclk ) divider (sets toclk rate relative to 256khz.) 000 = divide by 256 (1khz) 001 = divide by 512 (500hz) 010 = divide by 1024 (250hz) 011 = divide by 2048 (125hz) 100 = divide by 4096 (62.5hz) 101 = divide by 8192 (31.2hz) 110 = divide by 16384 (15.6hz) 111 = divide by 32768 (7.8hz) 6:4 dbclk_div [2:0] 000 de-bounce clock (dbclk) divider (sets dbclk rate relative to 256khz.) 000 = divide by 256 (1khz) 001 = divide by 2048 (125hz) 010 = divide by 4096 (62.5hz) 011 = divide by 8192 (31.2hz) 100 = divide by 16384 (15.6hz) 101 = divide by 32768 (7.8hz) 110 = divide by 65536 (3.9hz) 111 = divide by 131072 (1.95hz) 2:0 opclk_div [2:0] 000 gpio output clock (opclk) divider 000 = sysclk 001 = sysclk / 2 010 = sysclk / 3 011 = sysclk / 4 100 = sysclk / 6 101 = sysclk / 8 110 = sysclk / 12 111 = sysclk / 16 register 0209h clocking (2) register address bit label default description refer to r528 (0210h) aif1 rate 7:4 aif1_sr [3:0] 1000 selects the aif1 sample rate (fs) 0000 = 8khz 0001 = 11.025khz 0010 = 12khz 0011 = 16khz 0100 = 22.05khz 0101 = 24khz 0110 = 32khz 0111 = 44.1khz 1000 = 48khz 1001 = 88.2khz 1010 = 96khz all other codes = reserved note that 88.2khz and 96khz modes are supported for aif1 input (dac playback) only.
production data WM8994 w pd, april 2012, rev 4.4 281 register address bit label default description refer to 3:0 aif1clk_rat e [3:0] 0011 selects the aif1clk / fs ratio 0000 = reserved 0001 = 128 0010 = 192 0011 = 256 0100 = 384 0101 = 512 0110 = 768 0111 = 1024 1000 = 1408 1001 = 1536 all other codes = reserved register 0210h aif1 rate register address bit label default description refer to r529 (0211h) aif2 rate 7:4 aif2_sr [3:0] 1000 selects the aif2 sample rate (fs) 0000 = 8khz 0001 = 11.025khz 0010 = 12khz 0011 = 16khz 0100 = 22.05khz 0101 = 24khz 0110 = 32khz 0111 = 44.1khz 1000 = 48khz 1001 = 88.2khz 1010 = 96khz all other codes = reserved note that 88.2khz and 96khz modes are supported for aif2 input (dac playback) only. 3:0 aif2clk_rat e [3:0] 0011 selects the aif2clk / fs ratio 0000 = reserved 0001 = 128 0010 = 192 0011 = 256 0100 = 384 0101 = 512 0110 = 768 0111 = 1024 1000 = 1408 1001 = 1536 all other codes = reserved register 0211h aif2 rate
WM8994 production data w pd, april 2012, rev 4.4 282 register address bit label default description refer to r530 (0212h) rate status 3:0 sr_error [3:0] 0000 sample rate configuration status indicates an error with the register settings related to sample rate configuration 0000 = no errors 0001 = invalid sample rate 0010 = invalid aif divide 0011 = adc and dac divides both set in an interface 0100 = invalid combination of aif divides and sample- rate 0101 = invalid set of enables for 96khz mode 0110 = invalid sysclk rate (derived from aif1clk_rate or aif2clk_rate) 0111 = mixed adc and dac rates in sysclk aif when aifs are asynchronous 1000 = invalid combination of sample rates when both aifs are from the same clock source 1001 = invalid combination of mixed adc/dac aifs when both from the same clock source 1010 = aif1dac2 (timeslot 1) ports enabled when srcs connected to aif1 register 0212h rate status register address bit label default description refer to r544 (0220h) fll1 control (1) 1 fll1_osc_en a 0 fll1 oscillator enable 0 = disabled 1 = enabled (note that this field is required for free-running fll1 modes only) 0 fll1_ena 0 fll1 enable 0 = disabled 1 = enabled this should be set as the final step of the fll1 enable sequence, ie. after the other fll registers have been configured. register 0220h fll1 control (1) register address bit label default description refer to r545 (0221h) fll1 control (2) 13:8 fll1_outdiv [5:0] 00_0000 fll1 fout clock divider 000000 = reserved 000001 = reserved 000010 = reserved 000011 = 4 000100 = 5 000101 = 6 ? 111110 = 63 111111 = 64 (fout = fvco / fll1_outdiv) 2:0 fll1_fratio [2:0] 000 fll1 fvco clock divider 000 = 1 001 = 2
production data WM8994 w pd, april 2012, rev 4.4 283 register address bit label default description refer to 010 = 4 011 = 8 1xx = 16 register 0221h fll1 control (2) register address bit label default description refer to r546 (0222h) fll1 control (3) 15:0 fll1_k [15:0] 0000_0000 _0000_000 0 fll1 fractional multiply for fref (msb = 0.5) register 0222h fll1 control (3) register address bit label default description refer to r547 (0223h) fll1 control (4) 14:5 fll1_n [9:0] 00_0000_0 000 fll1 integer multiply for fref (lsb = 1) register 0223h fll1 control (4) register address bit label default description refer to r548 (0224h) fll1 control (5) 12:7 fll1_frc_nc o_val [5:0] 01_1001 fll1 forced oscillator value valid range is 000000 to 111111 0x19h (011001) = 12mhz approx (note that this field is required for free-running fll modes only) 6 fll1_frc_nc o 0 fll1 forced control select 0 = normal 1 = fll1 oscillator controlled by fll1_frc_nco_val (note that this field is required for free-running fll modes only) 4:3 fll1_refclk _div [1:0] 00 fll1 clock reference divider 00 = mclk / 1 01 = mclk / 2 10 = mclk / 4 11 = mclk / 8 mclk (or other input reference) must be divided down to <=13.5mhz. for lower power operation, the reference clock can be divided down further if desired. 1:0 fll1_refclk _src [1:0] 00 fll1 clock source 00 = mclk1 01 = mclk2 10 = lrclk1 11 = bclk1 register 0224h fll1 control (5)
WM8994 production data w pd, april 2012, rev 4.4 284 register address bit label default description refer to r576 (0240h) fll2 control (1) 1 fll2_osc_en a 0 fll2 oscillator enable 0 = disabled 1 = enabled (note that this field is required for free-running fll2 modes only) 0 fll2_ena 0 fll2 enable 0 = disabled 1 = enabled this should be set as the final step of the fll1 enable sequence, ie. after the other fll registers have been configured. register 0240h fll2 control (1) register address bit label default description refer to r577 (0241h) fll2 control (2) 13:8 fll2_outdiv [5:0] 00_0000 fll2 fout clock divider 000000 = reserved 000001 = reserved 000010 = reserved 000011 = 4 000100 = 5 000101 = 6 ? 111110 = 63 111111 = 64 (fout = fvco / fll2_outdiv) 2:0 fll2_fratio [2:0] 000 fll2 fvco clock divider 000 = 1 001 = 2 010 = 4 011 = 8 1xx = 16 register 0241h fll2 control (2) register address bit label default description refer to r578 (0242h) fll2 control (3) 15:0 fll2_k [15:0] 0000_0000 _0000_000 0 fll2 fractional multiply for fref (msb = 0.5) register 0242h fll2 control (3) register address bit label default description refer to r579 (0243h) fll2 control (4) 14:5 fll2_n [9:0] 00_0000_0 000 fll2 integer multiply for fref (lsb = 1) register 0243h fll2 control (4)
production data WM8994 w pd, april 2012, rev 4.4 285 register address bit label default description refer to r580 (0244h) fll2 control (5) 12:7 fll2_frc_nc o_val [5:0] 01_1001 fll2 forced oscillator value valid range is 000000 to 111111 0x19h (011001) = 12mhz approx (note that this field is required for free-running fll modes only) 6 fll2_frc_nc o 0 fll2 forced control select 0 = normal 1 = fll2 oscillator controlled by fll2_frc_nco_val (note that this field is required for free-running fll modes only) 4:3 fll2_refclk _div [1:0] 00 fll2 clock reference divider 00 = mclk / 1 01 = mclk / 2 10 = mclk / 4 11 = mclk / 8 mclk (or other input reference) must be divided down to <=13.5mhz. for lower power operation, the reference clock can be divided down further if desired. 1:0 fll2_refclk _src [1:0] 00 fll2 clock source 00 = mclk1 01 = mclk2 10 = lrclk2 11 = bclk2 register 0244h fll2 control (5) register address bit label default description refer to r768 (0300h) aif1 control (1) 15 aif1adcl_sr c 0 aif1 left digital audio interface source 0 = left adc data is output on left channel 1 = right adc data is output on left channel 14 aif1adcr_sr c 1 aif1 right digital audio interface source 0 = left adc data is output on right channel 1 = right adc data is output on right channel 13 aif1adc_tdm 0 aif1 transmit (adc) tdm control 0 = adcdat1 drives logic ?0? when not transmitting data 1 = adcdat1 is tri-stated when not transmitting data 8 aif1_bclk_in v 0 bclk1 invert 0 = bclk1 not inverted 1 = bclk1 inverted note that aif1_bclk_inv selects the bclk1 polarity in master mode and in slave mode. 7 aif1_lrclk_i nv 0 right, left and i2s modes ? lrclk1 polarity 0 = normal lrclk1 polarity 1 = invert lrclk1 polarity note that aif1_lrclk_inv selects the lrclk1 polarity in master mode and in slave mode. dsp mode ? mode a/b select 0 = msb is available on 2nd bclk1 rising edge after lrclk1 rising edge (mode a) 1 = msb is available on 1st bclk1 rising edge after
WM8994 production data w pd, april 2012, rev 4.4 286 register address bit label default description refer to lrclk1 rising edge (mode b) 6:5 aif1_wl [1:0] 10 aif1 digital audio interface word length 00 = 16 bits 01 = 20 bits 10 = 24 bits 11 = 32 bits note - 8-bit modes can be selected using the ?companding? control bits. 4:3 aif1_fmt [1:0] 10 aif1 digital audio interface format 00 = right justified 01 = left justified 10 = i2s format 11 = dsp mode register 0300h aif1 control (1) register address bit label default description refer to r769 (0301h) aif1 control (2) 15 aif1dacl_sr c 0 aif1 left receive data source select 0 = left dac receives left interface data 1 = left dac receives right interface data 14 aif1dacr_sr c 1 aif1 right receive data source select 0 = right dac receives left interface data 1 = right dac receives right interface data 11:10 aif1dac_boo st [1:0] 00 aif1 input path boost 00 = 0db 01 = +6db (input must not exceed -6dbfs) 10 = +12db (input must not exceed -12dbfs) 11 = +18db (input must not exceed -18dbfs) 8 aif1_mono 0 aif1 dsp mono mode 0 = disabled 1 = enabled note that mono mode is only supported when aif1_fmt = 11. the number of bclk cycles per lrclk frame must be less the 2 x aif1 word length. 4 aif1dac_co mp 0 aif1 receive companding enable 0 = disabled 1 = enabled 3 aif1dac_co mpmode 0 aif1 receive companding type 0 = -law 1 = a-law 2 aif1adc_co mp 0 aif1 transmit companding enable 0 = disabled 1 = enabled 1 aif1adc_co mpmode 0 aif1 transmit companding type 0 = -law 1 = a-law 0 aif1_loopba ck 0 aif1 digital loopback function 0 = no loopback 1 = loopback enabled (adcdat1 data output is directly input to dacdat1 data input). register 0301h aif1 control (2)
production data WM8994 w pd, april 2012, rev 4.4 287 register address bit label default description refer to r770 (0302h) aif1 master/slav e 15 aif1_tri 0 aif1 audio interface tri-state 0 = aif1 pins operate normally 1 = tri-state all aif1 interface pins note that the gpio1 pin is controlled by this register only when configured as adclrclk1. 14 aif1_mstr 0 aif1 audio interface master mode select 0 = slave mode 1 = master mode 13 aif1_clk_fr c 0 forces bclk1, lrclk1 and adclrclk1 to be enabled when all aif1 audio channels are disabled. 0 = normal 1 = bclk1, lrclk1 and adclrclk1 always enabled in master mode 12 aif1_lrclk_ frc 0 forces lrclk1 and adclrclk1 to be enabled when all aif1 audio channels are disabled. 0 = normal 1 = lrclk1 and adclrclk1 always enabled in master mode register 0302h aif1 master/slave register address bit label default description refer to r771 (0303h) aif1 bclk 8:4 aif1_bclk_di v [4:0] 0_0100 bclk1 rate 00000 = aif1clk 00001 = aif1clk / 1.5 00010 = aif1clk / 2 00011 = aif1clk / 3 00100 = aif1clk / 4 00101 = aif1clk / 5 00110 = aif1clk / 6 00111 = aif1clk / 8 01000 = aif1clk / 11 01001 = aif1clk / 12 01010 = aif1clk / 16 01011 = aif1clk / 22 01100 = aif1clk / 24 01101 = aif1clk / 32 01110 = aif1clk / 44 01111 = aif1clk / 48 10000 = aif1clk / 64 10001 = aif1clk / 88 10010 = aif1clk / 96 10011 = aif1clk / 128 10100 = aif1clk / 176 10101 = aif1clk / 192 10110 - 11111 = reserved register 0303h aif1 bclk
WM8994 production data w pd, april 2012, rev 4.4 288 register address bit label default description refer to r772 (0304h) aif1adc lrclk 11 aif1adc_lrc lk_dir 0 allows adclrclk1 to be enabled in slave mode 0 = normal 1 = adclrclk1 enabled in slave mode 10:0 aif1adc_rat e [10:0] 000_0100_ 0000 adclrclk1 rate adclrclk1 clock output = bclk1 / aif1adc_rate integer (lsb = 1) valid from 8..2047 register 0304h aif1adc lrclk register address bit label default description refer to r773 (0305h) aif1dac lrclk 11 aif1dac_lrc lk_dir 0 allows lrclk1 to be enabled in slave mode 0 = normal 1 = lrclk1 enabled in slave mode 10:0 aif1dac_rat e [10:0] 000_0100_ 0000 lrclk1 rate lrclk1 clock output = bclk1 / aif1dac_rate integer (lsb = 1) valid from 8..2047 register 0305h aif1dac lrclk register address bit label default description refer to r774 (0306h) aif1dac data 1 aif1dacl_da t_inv 0 aif1 left receive data invert 0 = not inverted 1 = inverted 0 aif1dacr_da t_inv 0 aif1 right receive data invert 0 = not inverted 1 = inverted register 0306h aif1dac data register address bit label default description refer to r775 (0307h) aif1adc data 1 aif1adcl_da t_inv 0 aif1 left transmit data invert 0 = not inverted 1 = inverted 0 aif1adcr_da t_inv 0 aif1 right transmit data invert 0 = not inverted 1 = inverted register 0307h aif1adc data
production data WM8994 w pd, april 2012, rev 4.4 289 register address bit label default description refer to r784 (0310h) aif2 control (1) 15 aif2adcl_sr c 0 aif2 left digital audio interface source 0 = left adc data is output on left channel 1 = right adc data is output on left channel 14 aif2adcr_sr c 1 aif2 right digital audio interface source 0 = left adc data is output on right channel 1 = right adc data is output on right channel 13 aif2adc_tdm 0 aif2 transmit (adc) tdm enable 0 = normal adcdat2 operation 1 = tdm enabled on adcdat2 12 aif2adc_tdm _chan 0 aif2 transmit (adc) tdm slot select 0 = slot 0 1 = slot 1 8 aif2_bclk_in v 0 bclk2 invert 0 = bclk2 not inverted 1 = bclk2 inverted note that aif2_bclk_inv selects the bclk2 polarity in master mode and in slave mode. 7 aif2_lrclk_i nv 0 right, left and i2s modes ? lrclk2 polarity 0 = normal lrclk2 polarity 1 = invert lrclk2 polarity note that aif2_lrclk_inv selects the lrclk2 polarity in master mode and in slave mode. dsp mode ? mode a/b select 0 = msb is available on 2nd bclk2 rising edge after lrclk2 rising edge (mode a) 1 = msb is available on 1st bclk2 rising edge after lrclk2 rising edge (mode b) 6:5 aif2_wl [1:0] 10 aif2 digital audio interface word length 00 = 16 bits 01 = 20 bits 10 = 24 bits 11 = 32 bits note - 8-bit modes can be selected using the ?companding? control bits. 4:3 aif2_fmt [1:0] 10 aif2 digital audio interface format 00 = right justified 01 = left justified 10 = i2s format 11 = dsp mode register 0310h aif2 control (1) register address bit label default description refer to r785 (0311h) aif2 control (2) 15 aif2dacl_sr c 0 aif2 left receive data source select 0 = left dac receives left interface data 1 = left dac receives right interface data 14 aif2dacr_sr c 1 aif2 right receive data source select 0 = right dac receives left interface data 1 = right dac receives right interface data 13 aif2dac_tdm 0 aif2 receive (dac) tdm enable 0 = normal dacdat2 operation 1 = tdm enabled on dacdat2
WM8994 production data w pd, april 2012, rev 4.4 290 register address bit label default description refer to 12 aif2dac_tdm _chan 0 aif2 receive (dac) tdm slot select 0 = slot 0 1 = slot 1 11:10 aif2dac_boo st [1:0] 00 aif2 input path boost 00 = 0db 01 = +6db (input must not exceed -6dbfs) 10 = +12db (input must not exceed -12dbfs) 11 = +18db (input must not exceed -18dbfs) 8 aif2_mono 0 aif2 dsp mono mode 0 = disabled 1 = enabled note that mono mode is only supported when aif2_fmt = 11. the number of bclk cycles per lrclk frame must be less the 2 x aif2 word length. 4 aif2dac_co mp 0 aif2 receive companding enable 0 = disabled 1 = enabled 3 aif2dac_co mpmode 0 aif2 receive companding type 0 = -law 1 = a-law 2 aif2adc_co mp 0 aif2 transmit companding enable 0 = disabled 1 = enabled 1 aif2adc_co mpmode 0 aif2 transmit companding type 0 = -law 1 = a-law 0 aif2_loopba ck 0 aif2 digital loopback function 0 = no loopback 1 = loopback enabled (adcdat2 data output is directly input to dacdat2 data input). register 0311h aif2 control (2) register address bit label default description refer to r786 (0312h) aif2 master/slav e 15 aif2_tri 0 aif2 audio interface tri-state 0 = aif2 pins operate normally 1 = tri-state all aif2 interface pins note that pins not configured as aif2 functions are not affected by this register. 14 aif2_mstr 0 aif2 audio interface master mode select 0 = slave mode 1 = master mode 13 aif2_clk_fr c 0 forces bclk2, lrclk2 and adclrclk2 to be enabled when all aif2 audio channels are disabled. 0 = normal 1 = bclk2, lrclk2 and adclrclk2 always enabled in master mode 12 aif2_lrclk_ frc 0 forces lrclk2 and adclrclk2 to be enabled when all aif2 audio channels are disabled. 0 = normal 1 = lrclk2 and adclrclk2 always enabled in master mode register 0312h aif2 master/slave
production data WM8994 w pd, april 2012, rev 4.4 291 register address bit label default description refer to r787 (0313h) aif2 bclk 8:4 aif2_bclk_di v [4:0] 0_0100 bclk2 rate 00000 = aif2clk 00001 = aif2clk / 1.5 00010 = aif2clk / 2 00011 = aif2clk / 3 00100 = aif2clk / 4 00101 = aif2clk / 5 00110 = aif2clk / 6 00111 = aif2clk / 8 01000 = aif2clk / 11 01001 = aif2clk / 12 01010 = aif2clk / 16 01011 = aif2clk / 22 01100 = aif2clk / 24 01101 = aif2clk / 32 01110 = aif2clk / 44 01111 = aif2clk / 48 10000 = aif2clk / 64 10001 = aif2clk / 88 10010 = aif2clk / 96 10011 = aif2clk / 128 10100 = aif2clk / 176 10101 = aif2clk / 192 10110 - 11111 = reserved register 0313h aif2 bclk register address bit label default description refer to r788 (0314h) aif2adc lrclk 11 aif2adc_lrc lk_dir 0 allows adclrclk2 to be enabled in slave mode 0 = normal 1 = adclrclk2 enabled in slave mode 10:0 aif2adc_rat e [10:0] 000_0100_ 0000 adclrclk2 rate adclrclk2 clock output = bclk2 / aif2adc_rate integer (lsb = 1) valid from 8..2047 register 0314h aif2adc lrclk register address bit label default description refer to r789 (0315h) aif2dac lrclk 11 aif2dac_lrc lk_dir 0 allows lrclk2 to be enabled in slave mode 0 = normal 1 = lrclk2 enabled in slave mode 10:0 aif2dac_rat e [10:0] 000_0100_ 0000 lrclk2 rate lrclk2 clock output = bclk2 / aif2dac_rate integer (lsb = 1) valid from 8..2047 register 0315h aif2dac lrclk
WM8994 production data w pd, april 2012, rev 4.4 292 register address bit label default description refer to r790 (0316h) aif2dac data 1 aif2dacl_da t_inv 0 aif2 left receive data invert 0 = not inverted 1 = inverted 0 aif2dacr_da t_inv 0 aif2 right receive data invert 0 = not inverted 1 = inverted register 0316h aif2dac data register address bit label default description refer to r791 (0317h) aif2adc data 1 aif2adcl_da t_inv 0 aif2 left transmit data invert 0 = not inverted 1 = inverted 0 aif2adcr_da t_inv 0 aif2 right transmit data invert 0 = not inverted 1 = inverted register 0317h aif2adc data register address bit label default description refer to r1024 (0400h) aif1 adc1 left volume 8 aif1adc1_vu 0 aif1adc1 output path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1adc1l and aif1adc1r volume to be updated simultaneously 7:0 aif1adc1l_v ol [7:0] 1100_0000 aif1adc1 (left) output path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db register 0400h aif1 adc1 left volume register address bit label default description refer to r1025 (0401h) aif1 adc1 right volume 8 aif1adc1_vu 0 aif1adc1 output path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1adc1l and aif1adc1r volume to be updated simultaneously 7:0 aif1adc1r_v ol [7:0] 1100_0000 aif1adc1 (right) output path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db register 0401h aif1 adc1 right volume
production data WM8994 w pd, april 2012, rev 4.4 293 register address bit label default description refer to r1026 (0402h) aif1 dac1 left volume 8 aif1dac1_vu 0 aif1dac1 input path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1dac1l and aif1dac1r volume to be updated simultaneously 7:0 aif1dac1l_v ol [7:0] 1100_0000 aif1dac1 (left) input path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0402h aif1 dac1 left volume register address bit label default description refer to r1027 (0403h) aif1 dac1 right volume 8 aif1dac1_vu 0 aif1dac1 input path (aif1, timeslot 0) volume update writing a 1 to this bit will cause the aif1dac1l and aif1dac1r volume to be updated simultaneously 7:0 aif1dac1r_v ol [7:0] 1100_0000 aif1dac1 (right) input path (aif1, timeslot 0) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0403h aif1 dac1 right volume register address bit label default description refer to r1028 (0404h) aif1 adc2 left volume 8 aif1adc2_vu 0 aif1adc2 output path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1adc2l and aif1adc2r volume to be updated simultaneously 7:0 aif1adc2l_v ol [7:0] 1100_0000 aif1adc2 (left) output path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db register 0404h aif1 adc2 left volume
WM8994 production data w pd, april 2012, rev 4.4 294 register address bit label default description refer to r1029 (0405h) aif1 adc2 right volume 8 aif1adc2_vu 0 aif1adc2 output path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1adc2l and aif1adc2r volume to be updated simultaneously 7:0 aif1adc2r_v ol [7:0] 1100_0000 aif1adc2 (right) output path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db register 0405h aif1 adc2 right volume register address bit label default description refer to r1030 (0406h) aif1 dac2 left volume 8 aif1dac2_vu 0 aif1dac2 input path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1dac2l and aif1dac2r volume to be updated simultaneously 7:0 aif1dac2l_v ol [7:0] 1100_0000 aif1dac2 (left) input path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0406h aif1 dac2 left volume register address bit label default description refer to r1031 (0407h) aif1 dac2 right volume 8 aif1dac2_vu 0 aif1dac2 input path (aif1, timeslot 1) volume update writing a 1 to this bit will cause the aif1dac2l and aif1dac2r volume to be updated simultaneously 7:0 aif1dac2r_v ol [7:0] 1100_0000 aif1dac2 (right) input path (aif1, timeslot 1) digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0407h aif1 dac2 right volume
production data WM8994 w pd, april 2012, rev 4.4 295 register address bit label default description refer to r1040 (0410h) aif1 adc1 filters 15 aif1adc_4fs 0 enable aif1adc ultrasonic mode (4fs) output, bypassing all aif1 baseband output filtering 0 = disabled 1 = enabled 14:13 aif1adc1_hp f_cut [1:0] 00 aif1adc1 output path (aif1, timeslot 0) digital hpf cut-off frequency (fc) 00 = hi-fi mode (fc = 4hz at fs = 48khz) 01 = voice mode 1 (fc = 127hz at fs = 8khz) 10 = voice mode 2 (fc = 130hz at fs = 8khz) 11 = voice mode 3 (fc = 267hz at fs = 8khz) 12 aif1adc1l_h pf 0 aif1adc1 (left) output path (aif1, timeslot 0) digital hpf enable 0 = disabled 1 = enabled 11 aif1adc1r_h pf 0 aif1adc1 (right) output path (aif1, timeslot 0) digital hpf enable 0 = disabled 1 = enabled register 0410h aif1 adc1 filters register address bit label default description refer to r1041 (0411h) aif1 adc2 filters 14:13 aif1adc2_hp f_cut [1:0] 00 aif1adc2 output path (aif1, timeslot 1) digital hpf cut-off frequency (fc) 00 = hi-fi mode (fc = 4hz at fs = 48khz) 01 = voice mode 1 (fc = 127hz at fs = 8khz) 10 = voice mode 2 (fc = 130hz at fs = 8khz) 11 = voice mode 3 (fc = 267hz at fs = 8khz) 12 aif1adc2l_h pf 0 aif1adc2 (left) output path (aif1, timeslot 1) digital hpf enable 0 = disabled 1 = enabled 11 aif1adc2r_h pf 0 aif1adc2 (right) output path (aif1, timeslot 1) digital hpf enable 0 = disabled 1 = enabled register 0411h aif1 adc2 filters register address bit label default description refer to r1056 (0420h) aif1 dac1 filters (1) 9 aif1dac1_mu te 1 aif1dac1 input path (aif1, timeslot 0) soft mute control 0 = un-mute 1 = mute 7 aif1dac1_mo no 0 aif1dac1 input path (aif1, timeslot 0) mono mix control 0 = disabled 1 = enabled
WM8994 production data w pd, april 2012, rev 4.4 296 register address bit label default description refer to 5 aif1dac1_mu terate 0 aif1dac1 input path (aif1, timeslot 0) soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.) 4 aif1dac1_un mute_ramp 0 aif1dac1 input path (aif1, timeslot 0) unmute ramp select 0 = disabling soft-mute (aif1dac1_mute=0) will cause the volume to change immediately to aif1dac1l_vol and aif1dac1r_vol settings 1 = disabling soft-mute (aif1dac1_mute=0) will cause the dac volume to ramp up gradually to the aif1dac1l_vol and aif1dac1r_vol settings 2:1 aif1dac1_de emp [1:0] 00 aif1dac1 input path (aif1, timeslot 0) de-emphasis control 00 = no de-emphasis 01 = 32khz sample rate 10 = 44.1khz sample rate 11 = 48khz sample rate register 0420h aif1 dac1 filters (1) register address bit label default description refer to r1057 (0421h) aif1 dac1 filters (2) 13:9 aif1dac1_3d _gain [4:0] 0_0000 aif1dac1 playback path (aif1, timeslot 0) 3d stereo depth 00000 = off 00001 = minimum (-16db) ?(0.915db steps) 11111 = maximum (+11.45db) 8 aif1dac1_3d _ena 0 enable 3d stereo in aif1dac1 playback path (aif1, timeslot 0) 0 = disabled 1 = enabled register 0421h aif1 dac1 filters (2) register address bit label default description refer to r1058 (0422h) aif1 dac2 filters (1) 9 aif1dac2_mu te 1 aif1dac2 input path (aif1, timeslot 1) soft mute control 0 = un-mute 1 = mute 7 aif1dac2_mo no 0 aif1dac2 input path (aif1, timeslot 1) mono mix control 0 = disabled 1 = enabled 5 aif1dac2_mu terate 0 aif1dac2 input path (aif1, timeslot 1) soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.)
production data WM8994 w pd, april 2012, rev 4.4 297 register address bit label default description refer to 4 aif1dac2_un mute_ramp 0 aif1dac2 input path (aif1, timeslot 1) unmute ramp select 0 = disabling soft-mute (aif1dac2_mute=0) will cause the volume to change immediately to aif1dac2l_vol and aif1dac2r_vol settings 1 = disabling soft-mute (aif1dac2_mute=0) will cause the dac volume to ramp up gradually to the aif1dac2l_vol and aif1dac2r_vol settings 2:1 aif1dac2_de emp [1:0] 00 aif1dac2 input path (aif1, timeslot 1) de-emphasis control 00 = no de-emphasis 01 = 32khz sample rate 10 = 44.1khz sample rate 11 = 48khz sample rate register 0422h aif1 dac2 filters (1) register address bit label default description refer to r1059 (0423h) aif1 dac2 filters (2) 13:9 aif1dac2_3d _gain [4:0] 0_0000 aif1dac2 playback path (aif1, timeslot 1) 3d stereo depth 00000 = off 00001 = minimum (-16db) ?(0.915db steps) 11111 = maximum (+11.45db) 8 aif1dac2_3d _ena 0 enable 3d stereo in aif1dac2 playback path (aif1, timeslot 1) 0 = disabled 1 = enabled register 0423h aif1 dac2 filters (2) register address bit label default description refer to r1088 (0440h) aif1 drc1 (1) 15:11 aif1drc1_si g_det_rms [4:0] 0_0000 aif1 drc1 signal detect rms threshold. this is the rms signal level for signal detect to be indicated when aif1drc1_sig_det_mode=1. 00000 = -30db 00001 = -31.5db ?. (1.5db steps) 11110 = -75db 11111 = -76.5db 10:9 aif1drc1_si g_det_pk [1:0] 00 aif1 drc1 signal detect peak threshold. this is the peak/rms ratio, or crest factor, level for signal detect to be indicated when aif1drc1_sig_det_mode=0. 00 = 12db 01 = 18db 10 = 24db 11 = 30db 8 aif1drc1_ng _ena 0 aif1 drc1 noise gate enable 0 = disabled 1 = enabled
WM8994 production data w pd, april 2012, rev 4.4 298 register address bit label default description refer to 7 aif1drc1_si g_det_mode 1 aif1 drc1 signal detect mode 0 = peak threshold mode 1 = rms threshold mode 6 aif1drc1_si g_det 0 aif1 drc1 signal detect enable 0 = disabled 1 = enabled 5 aif1drc1_kn ee2_op_ena 0 aif1 drc1 knee2_op enable 0 = disabled 1 = enabled 4 aif1drc1_qr 1 aif1 drc1 quick-release enable 0 = disabled 1 = enabled 3 aif1drc1_an ticlip 1 aif1 drc1 anti-clip enable 0 = disabled 1 = enabled 2 aif1dac1_dr c_ena 0 enable drc in aif1dac1 playback path (aif1, timeslot 0) 0 = disabled 1 = enabled 1 aif1adc1l_d rc_ena 0 enable drc in aif1adc1 (left) record path (aif1, timeslot 0) 0 = disabled 1 = enabled 0 aif1adc1r_d rc_ena 0 enable drc in aif1adc1 (right) record path (aif1, timeslot 0) 0 = disabled 1 = enabled register 0440h aif1 drc1 (1) register address bit label default description refer to r1089 (0441h) aif1 drc1 (2) 12:9 aif1drc1_at k [3:0] 0100 aif1 drc1 gain attack rate (seconds/6db) 0000 = reserved 0001 = 181us 0010 = 363us 0011 = 726us 0100 = 1.45ms 0101 = 2.9ms 0110 = 5.8ms 0111 = 11.6ms 1000 = 23.2ms 1001 = 46.4ms 1010 = 92.8ms 1011 = 185.6ms 1100-1111 = reserved 8:5 aif1drc1_dc y [3:0] 0010 aif1 drc1 gain decay rate (seconds/6db) 0000 = 186ms 0001 = 372ms 0010 = 743ms 0011 = 1.49s 0100 = 2.97s 0101 = 5.94s 0110 = 11.89s
production data WM8994 w pd, april 2012, rev 4.4 299 register address bit label default description refer to 0111 = 23.78s 1000 = 47.56s 1001-1111 = reserved 4:2 aif1drc1_mi ngain [2:0] 001 aif1 drc1 minimum gain to attenuate audio signals 000 = 0db 001 = -12db (default) 010 = -18db 011 = -24db 100 = -36db 101 = reserved 11x = reserved 1:0 aif1drc1_ma xgain [1:0] 01 aif1 drc1 maximum gain to boost audio signals (db) 00 = 12db 01 = 18db 10 = 24db 11 = 36db register 0441h aif1 drc1 (2) register address bit label default description refer to r1090 (0442h) aif1 drc1 (3) 15:12 aif1drc1_ng _mingain [3:0] 0000 aif1 drc1 minimum gain to attenuate audio signals when the noise gate is active. 0000 = -36db 0001 = -30db 0010 = -24db 0011 = -18db 0100 = -12db 0101 = -6db 0110 = 0db 0111 = 6db 1000 = 12db 1001 = 18db 1010 = 24db 1011 = 30db 1100 = 36db 1101 to 1111 = reserved 11:10 aif1drc1_ng _exp [1:0] 00 aif1 drc1 noise gate slope 00 = 1 (no expansion) 01 = 2 10 = 4 11 = 8 9:8 aif1drc1_qr _thr [1:0] 00 aif1 drc1 quick-release threshold (crest factor in db) 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7:6 aif1drc1_qr _dcy [1:0] 00 aif1 drc1 quick-release decay rate (seconds/6db) 00 = 0.725ms 01 = 1.45ms 10 = 5.8ms 11 = reserved
WM8994 production data w pd, april 2012, rev 4.4 300 register address bit label default description refer to 5:3 aif1drc1_hi_ comp [2:0] 000 aif1 drc1 compressor slope (upper region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 1/16 101 = 0 110 = reserved 111 = reserved 2:0 aif1drc1_lo _comp [2:0] 000 aif1 drc1 compressor slope (lower region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 0 101 = reserved 11x = reserved register 0442h aif1 drc1 (3) register address bit label default description refer to r1091 (0443h) aif1 drc1 (4) 10:5 aif1drc1_kn ee_ip [5:0] 00_0000 aif1 drc1 input signal level at the compressor ?knee?. 000000 = 0db 000001 = -0.75db 000010 = -1.5db ? (-0.75db steps) 111100 = -45db 111101 = reserved 11111x = reserved 4:0 aif1drc1_kn ee_op [4:0] 0_0000 aif1 drc1 output signal at the compressor ?knee?. 00000 = 0db 00001 = -0.75db 00010 = -1.5db ? (-0.75db steps) 11110 = -22.5db 11111 = reserved register 0443h aif1 drc1 (4) register address bit label default description refer to r1092 (0444h) aif1 drc1 (5) 9:5 aif1drc1_kn ee2_ip [4:0] 0_0000 aif1 drc1 input signal level at the noise gate threshold ?knee2?. 00000 = -36db 00001 = -37.5db 00010 = -39db ? (-1.5db steps) 11110 = -81db 11111 = -82.5db only applicable when aif1drc1_ng_ena = 1.
production data WM8994 w pd, april 2012, rev 4.4 301 register address bit label default description refer to 4:0 aif1drc1_kn ee2_op [4:0] 0_0000 aif1 drc1 output signal at the noise gate threshold ?knee2?. 00000 = -30db 00001 = -31.5db 00010 = -33db ? (-1.5db steps) 11110 = -75db 11111 = -76.5db only applicable when aif1drc1_knee2_op_ena = 1. register 0444h aif1 drc1 (5) register address bit label default description refer to r1104 (0450h) aif1 drc2 (1) 15:11 aif1drc2_si g_det_rms [4:0] 0_0000 aif1 drc2 signal detect rms threshold. this is the rms signal level for signal detect to be indicated when aif1drc2_sig_det_mode=1. 00000 = -30db 00001 = -31.5db ?. (1.5db steps) 11110 = -75db 11111 = -76.5db 10:9 aif1drc2_si g_det_pk [1:0] 00 aif1 drc2 signal detect peak threshold. this is the peak/rms ratio, or crest factor, level for signal detect to be indicated when aif1drc2_sig_det_mode=0. 00 = 12db 01 = 18db 10 = 24db 11 = 30db 8 aif1drc2_ng _ena 0 aif1 drc2 noise gate enable 0 = disabled 1 = enabled 7 aif1drc2_si g_det_mode 1 aif1 drc2 signal detect mode 0 = peak threshold mode 1 = rms threshold mode 6 aif1drc2_si g_det 0 aif1 drc2 signal detect enable 0 = disabled 1 = enabled 5 aif1drc2_kn ee2_op_ena 0 aif1 drc2 knee2_op enable 0 = disabled 1 = enabled 4 aif1drc2_qr 1 aif1 drc2 quick-release enable 0 = disabled 1 = enabled 3 aif1drc2_an ticlip 1 aif1 drc2 anti-clip enable 0 = disabled 1 = enabled 2 aif1dac2_dr c_ena 0 enable drc in aif1dac2 playback path (aif1, timeslot 1) 0 = disabled 1 = enabled
WM8994 production data w pd, april 2012, rev 4.4 302 register address bit label default description refer to 1 aif1adc2l_d rc_ena 0 enable drc in aif1adc2 (left) record path (aif1, timeslot 1) 0 = disabled 1 = enabled 0 aif1adc2r_d rc_ena 0 enable drc in aif1adc2 (right) record path (aif1, timeslot 1) 0 = disabled 1 = enabled register 0450h aif1 drc2 (1) register address bit label default description refer to r1105 (0451h) aif1 drc2 (2) 12:9 aif1drc2_at k [3:0] 0100 aif1 drc2 gain attack rate (seconds/6db) 0000 = reserved 0001 = 181us 0010 = 363us 0011 = 726us 0100 = 1.45ms 0101 = 2.9ms 0110 = 5.8ms 0111 = 11.6ms 1000 = 23.2ms 1001 = 46.4ms 1010 = 92.8ms 1011 = 185.6ms 1100-1111 = reserved 8:5 aif1drc2_dc y [3:0] 0010 aif1 drc2 gain decay rate (seconds/6db) 0000 = 186ms 0001 = 372ms 0010 = 743ms 0011 = 1.49s 0100 = 2.97s 0101 = 5.94s 0110 = 11.89s 0111 = 23.78s 1000 = 47.56s 1001-1111 = reserved 4:2 aif1drc2_mi ngain [2:0] 001 aif1 drc2 minimum gain to attenuate audio signals 000 = 0db 001 = -12db (default) 010 = -18db 011 = -24db 100 = -36db 101 = reserved 11x = reserved 1:0 aif1drc2_ma xgain [1:0] 01 aif1 drc2 maximum gain to boost audio signals (db) 00 = 12db 01 = 18db 10 = 24db 11 = 36db register 0451h aif1 drc2 (2)
production data WM8994 w pd, april 2012, rev 4.4 303 register address bit label default description refer to r1106 (0452h) aif1 drc2 (3) 15:12 aif1drc2_ng _mingain [3:0] 0000 aif1 drc2 minimum gain to attenuate audio signals when the noise gate is active. 0000 = -36db 0001 = -30db 0010 = -24db 0011 = -18db 0100 = -12db 0101 = -6db 0110 = 0db 0111 = 6db 1000 = 12db 1001 = 18db 1010 = 24db 1011 = 30db 1100 = 36db 1101 to 1111 = reserved 11:10 aif1drc2_ng _exp [1:0] 00 aif1 drc2 noise gate slope 00 = 1 (no expansion) 01 = 2 10 = 4 11 = 8 9:8 aif1drc2_qr _thr [1:0] 00 aif1 drc2 quick-release threshold (crest factor in db) 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7:6 aif1drc2_qr _dcy [1:0] 00 aif1 drc2 quick-release decay rate (seconds/6db) 00 = 0.725ms 01 = 1.45ms 10 = 5.8ms 11 = reserved 5:3 aif1drc2_hi_ comp [2:0] 000 aif1 drc2 compressor slope (upper region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 1/16 101 = 0 110 = reserved 111 = reserved 2:0 aif1drc2_lo _comp [2:0] 000 aif1 drc2 compressor slope (lower region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 0 101 = reserved 11x = reserved register 0452h aif1 drc2 (3)
WM8994 production data w pd, april 2012, rev 4.4 304 register address bit label default description refer to r1107 (0453h) aif1 drc2 (4) 10:5 aif1drc2_kn ee_ip [5:0] 00_0000 aif1 drc2 input signal level at the compressor ?knee?. 000000 = 0db 000001 = -0.75db 000010 = -1.5db ? (-0.75db steps) 111100 = -45db 111101 = reserved 11111x = reserved 4:0 aif1drc2_kn ee_op [4:0] 0_0000 aif1 drc2 output signal at the compressor ?knee?. 00000 = 0db 00001 = -0.75db 00010 = -1.5db ? (-0.75db steps) 11110 = -22.5db 11111 = reserved register 0453h aif1 drc2 (4) register address bit label default description refer to r1108 (0454h) aif1 drc2 (5) 9:5 aif1drc2_kn ee2_ip [4:0] 0_0000 aif1 drc2 input signal level at the noise gate threshold ?knee2?. 00000 = -36db 00001 = -37.5db 00010 = -39db ? (-1.5db steps) 11110 = -81db 11111 = -82.5db only applicable when aif1drc2_ng_ena = 1. 4:0 aif1drc2_kn ee2_op [4:0] 0_0000 aif1 drc2 output signal at the noise gate threshold ?knee2?. 00000 = -30db 00001 = -31.5db 00010 = -33db ? (-1.5db steps) 11110 = -75db 11111 = -76.5db only applicable when aif1drc2_knee2_op_ena = 1. register 0454h aif1 drc2 (5)
production data WM8994 w pd, april 2012, rev 4.4 305 register address bit label default description refer to r1152 (0480h) aif1 dac1 eq gains (1) 15:11 aif1dac1_eq _b1_gain [4:0] 0_1100 aif1dac1 (aif1, timeslot 0) eq band 1 gain -12db to +12db in 1db steps 10:6 aif1dac1_eq _b2_gain [4:0] 0_1100 aif1dac1 (aif1, timeslot 0) eq band 2 gain -12db to +12db in 1db steps 5:1 aif1dac1_eq _b3_gain [4:0] 0_1100 aif1dac1 (aif1, timeslot 0) eq band 3 gain -12db to +12db in 1db steps 0 aif1dac1_eq _ena 0 enable eq in aif1dac1 playback path (aif1, timeslot 0) 0 = disabled 1 = enabled register 0480h aif1 dac1 eq gains (1) register address bit label default description refer to r1153 (0481h) aif1 dac1 eq gains (2) 15:11 aif1dac1_eq _b4_gain [4:0] 0_1100 aif1dac1 (aif1, timeslot 0) eq band 4 gain -12db to +12db in 1db steps 10:6 aif1dac1_eq _b5_gain [4:0] 0_1100 aif1dac1 (aif1, timeslot 0) eq band 5 gain -12db to +12db in 1db steps register 0481h aif1 dac1 eq gains (2) register address bit label default description refer to r1154 (0482h) aif1 dac1 eq band 1 a 15:0 aif1dac1_eq _b1_a [15:0] 0000_1111 _1100_101 0 eq band 1 coefficient a register 0482h aif1 dac1 eq band 1 a register address bit label default description refer to r1155 (0483h) aif1 dac1 eq band 1 b 15:0 aif1dac1_eq _b1_b [15:0] 0000_0100 _0000_000 0 eq band 1 coefficient b register 0483h aif1 dac1 eq band 1 b register address bit label default description refer to r1156 (0484h) aif1 dac1 eq band 1 pg 15:0 aif1dac1_eq _b1_pg [15:0] 0000_0000 _1101_100 0 eq band 1 coefficient pg register 0484h aif1 dac1 eq band 1 pg
WM8994 production data w pd, april 2012, rev 4.4 306 register address bit label default description refer to r1157 (0485h) aif1 dac1 eq band 2 a 15:0 aif1dac1_eq _b2_a [15:0] 0001_1110 _1011_010 1 eq band 2 coefficient a register 0485h aif1 dac1 eq band 2 a register address bit label default description refer to r1158 (0486h) aif1 dac1 eq band 2 b 15:0 aif1dac1_eq _b2_b [15:0] 1111_0001 _0100_010 1 eq band 2 coefficient b register 0486h aif1 dac1 eq band 2 b register address bit label default description refer to r1159 (0487h) aif1 dac1 eq band 2 c 15:0 aif1dac1_eq _b2_c [15:0] 0000_1011 _0111_010 1 eq band 2 coefficient c register 0487h aif1 dac1 eq band 2 c register address bit label default description refer to r1160 (0488h) aif1 dac1 eq band 2 pg 15:0 aif1dac1_eq _b2_pg [15:0] 0000_0001 _1100_010 1 eq band 2 coefficient pg register 0488h aif1 dac1 eq band 2 pg register address bit label default description refer to r1161 (0489h) aif1 dac1 eq band 3 a 15:0 aif1dac1_eq _b3_a [15:0] 0001_1100 _0101_100 0 eq band 3 coefficient a register 0489h aif1 dac1 eq band 3 a register address bit label default description refer to r1162 (048ah) aif1 dac1 eq band 3 b 15:0 aif1dac1_eq _b3_b [15:0] 1111_0011 _0111_001 1 eq band 3 coefficient b register 048ah aif1 dac1 eq band 3 b
production data WM8994 w pd, april 2012, rev 4.4 307 register address bit label default description refer to r1163 (048bh) aif1 dac1 eq band 3 c 15:0 aif1dac1_eq _b3_c [15:0] 0000_1010 _0101_010 0 eq band 3 coefficient c register 048bh aif1 dac1 eq band 3 c register address bit label default description refer to r1164 (048ch) aif1 dac1 eq band 3 pg 15:0 aif1dac1_eq _b3_pg [15:0] 0000_0101 _0101_100 0 eq band 3 coefficient pg register 048ch aif1 dac1 eq band 3 pg register address bit label default description refer to r1165 (048dh) aif1 dac1 eq band 4 a 15:0 aif1dac1_eq _b4_a [15:0] 0001_0110 _1000_111 0 eq band 4 coefficient a register 048dh aif1 dac1 eq band 4 a register address bit label default description refer to r1166 (048eh) aif1 dac1 eq band 4 b 15:0 aif1dac1_eq _b4_b [15:0] 1111_1000 _0010_100 1 eq band 4 coefficient b register 048eh aif1 dac1 eq band 4 b register address bit label default description refer to r1167 (048fh) aif1 dac1 eq band 4 c 15:0 aif1dac1_eq _b4_c [15:0] 0000_0111 _1010_110 1 eq band 4 coefficient c register 048fh aif1 dac1 eq band 4 c
WM8994 production data w pd, april 2012, rev 4.4 308 register address bit label default description refer to r1168 (0490h) aif1 dac1 eq band 4 pg 15:0 aif1dac1_eq _b4_pg [15:0] 0001_0001 _0000_001 1 eq band 4 coefficient pg register 0490h aif1 dac1 eq band 4 pg register address bit label default description refer to r1169 (0491h) aif1 dac1 eq band 5 a 15:0 aif1dac1_eq _b5_a [15:0] 0000_0101 _0110_010 0 eq band 5 coefficient a register 0491h aif1 dac1 eq band 5 a register address bit label default description refer to r1170 (0492h) aif1 dac1 eq band 5 b 15:0 aif1dac1_eq _b5_b [15:0] 0000_0101 _0101_100 1 eq band 5 coefficient b register 0492h aif1 dac1 eq band 5 b register address bit label default description refer to r1171 (0493h) aif1 dac1 eq band 5 pg 15:0 aif1dac1_eq _b5_pg [15:0] 0100_0000 _0000_000 0 eq band 5 coefficient pg register 0493h aif1 dac1 eq band 5 pg register address bit label default description refer to r1184 (04a0h) aif1 dac2 eq gains (1) 15:11 aif1dac2_eq _b1_gain [4:0] 0_1100 aif1dac2 (aif1, timeslot 1) eq band 1 gain -12db to +12db in 1db steps 10:6 aif1dac2_eq _b2_gain [4:0] 0_1100 aif1dac2 (aif1, timeslot 1) eq band 2 gain -12db to +12db in 1db steps 5:1 aif1dac2_eq _b3_gain [4:0] 0_1100 aif1dac2 (aif1, timeslot 1) eq band 3 gain -12db to +12db in 1db steps 0 aif1dac2_eq _ena 0 enable eq in aif1dac2 playback path (aif1, timeslot 1) 0 = disabled 1 = enabled register 04a0h aif1 dac2 eq gains (1)
production data WM8994 w pd, april 2012, rev 4.4 309 register address bit label default description refer to r1185 (04a1h) aif1 dac2 eq gains (2) 15:11 aif1dac2_eq _b4_gain [4:0] 0_1100 aif1dac2 (aif1, timeslot 1) eq band 4 gain -12db to +12db in 1db steps 10:6 aif1dac2_eq _b5_gain [4:0] 0_1100 aif1dac2 (aif1, timeslot 1) eq band 5 gain -12db to +12db in 1db steps register 04a1h aif1 dac2 eq gains (2) register address bit label default description refer to r1186 (04a2h) aif1 dac2 eq band 1 a 15:0 aif1dac2_eq _b1_a [15:0] 0000_1111 _1100_101 0 eq band 1 coefficient a register 04a2h aif1 dac2 eq band 1 a register address bit label default description refer to r1187 (04a3h) aif1 dac2 eq band 1 b 15:0 aif1dac2_eq _b1_b [15:0] 0000_0100 _0000_000 0 eq band 1 coefficient b register 04a3h aif1 dac2 eq band 1 b register address bit label default description refer to r1188 (04a4h) aif1 dac2 eq band 1 pg 15:0 aif1dac2_eq _b1_pg [15:0] 0000_0000 _1101_100 0 eq band 1 coefficient pg register 04a4h aif1 dac2 eq band 1 pg register address bit label default description refer to r1189 (04a5h) aif1 dac2 eq band 2 a 15:0 aif1dac2_eq _b2_a [15:0] 0001_1110 _1011_010 1 eq band 2 coefficient a register 04a5h aif1 dac2 eq band 2 a register address bit label default description refer to r1190 (04a6h) aif1 dac2 eq band 2 b 15:0 aif1dac2_eq _b2_b [15:0] 1111_0001 _0100_010 1 eq band 2 coefficient b register 04a6h aif1 dac2 eq band 2 b
WM8994 production data w pd, april 2012, rev 4.4 310 register address bit label default description refer to r1191 (04a7h) aif1 dac2 eq band 2 c 15:0 aif1dac2_eq _b2_c [15:0] 0000_1011 _0111_010 1 eq band 2 coefficient c register 04a7h aif1 dac2 eq band 2 c register address bit label default description refer to r1192 (04a8h) aif1 dac2 eq band 2 pg 15:0 aif1dac2_eq _b2_pg [15:0] 0000_0001 _1100_010 1 eq band 2 coefficient pg register 04a8h aif1 dac2 eq band 2 pg register address bit label default description refer to r1193 (04a9h) aif1 dac2 eq band 3 a 15:0 aif1dac2_eq _b3_a [15:0] 0001_1100 _0101_100 0 eq band 3 coefficient a register 04a9h aif1 dac2 eq band 3 a register address bit label default description refer to r1194 (04aah) aif1 dac2 eq band 3 b 15:0 aif1dac2_eq _b3_b [15:0] 1111_0011 _0111_001 1 eq band 3 coefficient b register 04aah aif1 dac2 eq band 3 b register address bit label default description refer to r1195 (04abh) aif1 dac2 eq band 3 c 15:0 aif1dac2_eq _b3_c [15:0] 0000_1010 _0101_010 0 eq band 3 coefficient c register 04abh aif1 dac2 eq band 3 c
production data WM8994 w pd, april 2012, rev 4.4 311 register address bit label default description refer to r1196 (04ach) aif1 dac2 eq band 3 pg 15:0 aif1dac2_eq _b3_pg [15:0] 0000_0101 _0101_100 0 eq band 3 coefficient pg register 04ach aif1 dac2 eq band 3 pg register address bit label default description refer to r1197 (04adh) aif1 dac2 eq band 4 a 15:0 aif1dac2_eq _b4_a [15:0] 0001_0110 _1000_111 0 eq band 4 coefficient a register 04adh aif1 dac2 eq band 4 a register address bit label default description refer to r1198 (04aeh) aif1 dac2 eq band 4 b 15:0 aif1dac2_eq _b4_b [15:0] 1111_1000 _0010_100 1 eq band 4 coefficient b register 04aeh aif1 dac2 eq band 4 b register address bit label default description refer to r1199 (04afh) aif1 dac2 eq band 4 c 15:0 aif1dac2_eq _b4_c [15:0] 0000_0111 _1010_110 1 eq band 4 coefficient c register 04afh aif1 dac2 eq band 4 c register address bit label default description refer to r1200 (04b0h) aif1 dac2 eq band 4 pg 15:0 aif1dac2_eq _b4_pg [15:0] 0001_0001 _0000_001 1 eq band 4 coefficient pg register 04b0h aif1 dac2 eq band 4 pg register address bit label default description refer to r1201 (04b1h) aif1 dac2 eq band 5 a 15:0 aif1dac2_eq _b5_a [15:0] 0000_0101 _0110_010 0 eq band 5 coefficient a register 04b1h aif1 dac2 eq band 5 a
WM8994 production data w pd, april 2012, rev 4.4 312 register address bit label default description refer to r1202 (04b2h) aif1 dac2 eq band 5 b 15:0 aif1dac2_eq _b5_b [15:0] 0000_0101 _0101_100 1 eq band 5 coefficient b register 04b2h aif1 dac2 eq band 5 b register address bit label default description refer to r1203 (04b3h) aif1 dac2 eq band 5 pg 15:0 aif1dac2_eq _b5_pg [15:0] 0100_0000 _0000_000 0 eq band 5 coefficient pg register 04b3h aif1 dac2 eq band 5 pg register address bit label default description refer to r1280 (0500h) aif2 adc left volume 8 aif2adc_vu 0 aif2adc output path volume update writing a 1 to this bit will cause the aif2adcl and aif2adcr volume to be updated simultaneously 7:0 aif2adcl_vo l [7:0] 1100_0000 aif2adc (left) output path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db register 0500h aif2 adc left volume register address bit label default description refer to r1281 (0501h) aif2 adc right volume 8 aif2adc_vu 0 aif2adc output path volume update writing a 1 to this bit will cause the aif2adcl and aif2adcr volume to be updated simultaneously 7:0 aif2adcr_vo l [7:0] 1100_0000 aif2adc (right) output path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) efh = +17.625db register 0501h aif2 adc right volume
production data WM8994 w pd, april 2012, rev 4.4 313 register address bit label default description refer to r1282 (0502h) aif2 dac left volume 8 aif2dac_vu 0 aif2dac input path volume update writing a 1 to this bit will cause the aif2dacl and aif2dacr volume to be updated simultaneously 7:0 aif2dacl_vo l [7:0] 1100_0000 aif2dac (left) input path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0502h aif2 dac left volume register address bit label default description refer to r1283 (0503h) aif2 dac right volume 8 aif2dac_vu 0 aif2dac input path volume update writing a 1 to this bit will cause the aif2dacl and aif2dacr volume to be updated simultaneously 7:0 aif2dacr_vo l [7:0] 1100_0000 aif2dac (right) input path digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0503h aif2 dac right volume register address bit label default description refer to r1296 (0510h) aif2 adc filters 14:13 aif2adc_hpf _cut [1:0] 00 aif2adc output path digital hpf cut-off frequency (fc) 00 = hi-fi mode (fc = 4hz at fs = 48khz) 01 = voice mode 1 (fc = 127hz at fs = 8khz) 10 = voice mode 2 (fc = 130hz at fs = 8khz) 11 = voice mode 3 (fc = 267hz at fs = 8khz) 12 aif2adcl_hp f 0 aif2adc (left) output path digital hpf enable 0 = disabled 1 = enabled 11 aif2adcr_hp f 0 aif2adc (right) output path digital hpf enable 0 = disabled 1 = enabled register 0510h aif2 adc filters
WM8994 production data w pd, april 2012, rev 4.4 314 register address bit label default description refer to r1312 (0520h) aif2 dac filters (1) 9 aif2dac_mut e 1 aif2dac input path soft mute control 0 = un-mute 1 = mute 7 aif2dac_mo no 0 aif2dac input path mono mix control 0 = disabled 1 = enabled 5 aif2dac_mut erate 0 aif2dac input path soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.) 4 aif2dac_un mute_ramp 0 aif2dac input path unmute ramp select 0 = disabling soft-mute (aif2dac_mute=0) will cause the volume to change immediately to aif2dacl_vol and aif2dacr_vol settings 1 = disabling soft-mute (aif2dac_mute=0) will cause the dac volume to ramp up gradually to the aif2dacl_vol and aif2dacr_vol settings 2:1 aif2dac_dee mp [1:0] 00 aif2dac input path de-emphasis control 00 = no de-emphasis 01 = 32khz sample rate 10 = 44.1khz sample rate 11 = 48khz sample rate register 0520h aif2 dac filters (1) register address bit label default description refer to r1313 (0521h) aif2 dac filters (2) 13:9 aif2dac_3d_ gain [4:0] 0_0000 aif2dac playback path 3d stereo depth 00000 = off 00001 = minimum (-16db) ?(0.915db steps) 11111 = maximum (+11.45db) 8 aif2dac_3d_ ena 0 enable 3d stereo in aif2dac playback path 0 = disabled 1 = enabled register 0521h aif2 dac filters (2) register address bit label default description refer to r1344 (0540h) aif2 drc (1) 15:11 aif2drc_sig _det_rms [4:0] 0_0000 aif2 drc signal detect rms threshold. this is the rms signal level for signal detect to be indicated when aif2drc_sig_det_mode=1. 00000 = -30db 00001 = -31.5db ?. (1.5db steps) 11110 = -75db 11111 = -76.5db
production data WM8994 w pd, april 2012, rev 4.4 315 register address bit label default description refer to 10:9 aif2drc_sig _det_pk [1:0] 00 aif2 drc signal detect peak threshold. this is the peak/rms ratio, or crest factor, level for signal detect to be indicated when aif2drc_sig_det_mode=0. 00 = 12db 01 = 18db 10 = 24db 11 = 30db 8 aif2drc_ng_ ena 0 aif2 drc noise gate enable 0 = disabled 1 = enabled 7 aif2drc_sig _det_mode 1 aif2 drc signal detect mode 0 = peak threshold mode 1 = rms threshold mode 6 aif2drc_sig _det 0 aif2 drc signal detect enable 0 = disabled 1 = enabled 5 aif2drc_kne e2_op_ena 0 aif2 drc knee2_op enable 0 = disabled 1 = enabled 4 aif2drc_qr 1 aif2 drc quick-release enable 0 = disabled 1 = enabled 3 aif2drc_ant iclip 1 aif2 drc anti-clip enable 0 = disabled 1 = enabled 2 aif2dac_drc _ena 0 enable drc in aif2dac playback path 0 = disabled 1 = enabled 1 aif2adcl_dr c_ena 0 enable drc in aif2adc (left) record path 0 = disabled 1 = enabled 0 aif2adcr_dr c_ena 0 enable drc in aif2adc (right) record path 0 = disabled 1 = enabled register 0540h aif2 drc (1)
WM8994 production data w pd, april 2012, rev 4.4 316 register address bit label default description refer to r1345 (0541h) aif2 drc (2) 12:9 aif2drc_atk [3:0] 0100 aif2 drc gain attack rate (seconds/6db) 0000 = reserved 0001 = 181us 0010 = 363us 0011 = 726us 0100 = 1.45ms 0101 = 2.9ms 0110 = 5.8ms 0111 = 11.6ms 1000 = 23.2ms 1001 = 46.4ms 1010 = 92.8ms 1011 = 185.6ms 1100-1111 = reserved 8:5 aif2drc_dcy [3:0] 0010 aif2 drc gain decay rate (seconds/6db) 0000 = 186ms 0001 = 372ms 0010 = 743ms 0011 = 1.49s 0100 = 2.97s 0101 = 5.94s 0110 = 11.89s 0111 = 23.78s 1000 = 47.56s 1001-1111 = reserved 4:2 aif2drc_min gain [2:0] 001 aif2 drc minimum gain to attenuate audio signals 000 = 0db 001 = -12db (default) 010 = -18db 011 = -24db 100 = -36db 101 = reserved 11x = reserved 1:0 aif2drc_max gain [1:0] 01 aif2 drc maximum gain to boost audio signals (db) 00 = 12db 01 = 18db 10 = 24db 11 = 36db register 0541h aif2 drc (2)
production data WM8994 w pd, april 2012, rev 4.4 317 register address bit label default description refer to r1346 (0542h) aif2 drc (3) 15:12 aif2drc_ng_ mingain [3:0] 0000 aif2 drc minimum gain to attenuate audio signals when the noise gate is active. 0000 = -36db 0001 = -30db 0010 = -24db 0011 = -18db 0100 = -12db 0101 = -6db 0110 = 0db 0111 = 6db 1000 = 12db 1001 = 18db 1010 = 24db 1011 = 30db 1100 = 36db 1101 to 1111 = reserved 11:10 aif2drc_ng_ exp [1:0] 00 aif2 drc noise gate slope 00 = 1 (no expansion) 01 = 2 10 = 4 11 = 8 9:8 aif2drc_qr_ thr [1:0] 00 aif2 drc quick-release threshold (crest factor in db) 00 = 12db 01 = 18db 10 = 24db 11 = 30db 7:6 aif2drc_qr_ dcy [1:0] 00 aif2 drc quick-release decay rate (seconds/6db) 00 = 0.725ms 01 = 1.45ms 10 = 5.8ms 11 = reserved 5:3 aif2drc_hi_ comp [2:0] 000 aif2 drc compressor slope (upper region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 1/16 101 = 0 110 = reserved 111 = reserved 2:0 aif2drc_lo_ comp [2:0] 000 aif2 drc compressor slope (lower region) 000 = 1 (no compression) 001 = 1/2 010 = 1/4 011 = 1/8 100 = 0 101 = reserved 11x = reserved register 0542h aif2 drc (3)
WM8994 production data w pd, april 2012, rev 4.4 318 register address bit label default description refer to r1347 (0543h) aif2 drc (4) 10:5 aif2drc_kne e_ip [5:0] 00_0000 aif2 drc input signal level at the compressor ?knee?. 000000 = 0db 000001 = -0.75db 000010 = -1.5db ? (-0.75db steps) 111100 = -45db 111101 = reserved 11111x = reserved 4:0 aif2drc_kne e_op [4:0] 0_0000 aif2 drc output signal at the compressor ?knee?. 00000 = 0db 00001 = -0.75db 00010 = -1.5db ? (-0.75db steps) 11110 = -22.5db 11111 = reserved register 0543h aif2 drc (4) register address bit label default description refer to r1348 (0544h) aif2 drc (5) 9:5 aif2drc_kne e2_ip [4:0] 0_0000 aif2 drc input signal level at the noise gate threshold ?knee2?. 00000 = -36db 00001 = -37.5db 00010 = -39db ? (-1.5db steps) 11110 = -81db 11111 = -82.5db only applicable when aif2drc_ng_ena = 1. 4:0 aif2drc_kne e2_op [4:0] 0_0000 aif2 drc output signal at the noise gate threshold ?knee2?. 00000 = -30db 00001 = -31.5db 00010 = -33db ? (-1.5db steps) 11110 = -75db 11111 = -76.5db only applicable when aif2drc_knee2_op_ena = 1. register 0544h aif2 drc (5) register address bit label default description refer to r1408 (0580h) aif2 eq gains (1) 15:11 aif2dac_eq_ b1_gain [4:0] 0_1100 aif2 eq band 1 gain -12db to +12db in 1db steps 10:6 aif2dac_eq_ b2_gain [4:0] 0_1100 aif2eq band 2 gain -12db to +12db in 1db steps 5:1 aif2dac_eq_ b3_gain [4:0] 0_1100 aif2eq band 3 gain -12db to +12db in 1db steps 0 aif2dac_eq_ ena 0 enable eq in aif2dac playback path 0 = disabled 1 = enabled register 0580h aif2 eq gains (1)
production data WM8994 w pd, april 2012, rev 4.4 319 register address bit label default description refer to r1409 (0581h) aif2 eq gains (2) 15:11 aif2dac_eq_ b4_gain [4:0] 0_1100 aif2eq band 4 gain -12db to +12db in 1db steps 10:6 aif2dac_eq_ b5_gain [4:0] 0_1100 aif2eq band 5 gain -12db to +12db in 1db steps register 0581h aif2 eq gains (2) register address bit label default description refer to r1410 (0582h) aif2 eq band 1 a 15:0 aif2dac_eq_ b1_a [15:0] 0000_1111 _1100_101 0 eq band 1 coefficient a register 0582h aif2 eq band 1 a register address bit label default description refer to r1411 (0583h) aif2 eq band 1 b 15:0 aif2dac_eq_ b1_b [15:0] 0000_0100 _0000_000 0 eq band 1 coefficient b register 0583h aif2 eq band 1 b register address bit label default description refer to r1412 (0584h) aif2 eq band 1 pg 15:0 aif2dac_eq_ b1_pg [15:0] 0000_0000 _1101_100 0 eq band 1 coefficient pg register 0584h aif2 eq band 1 pg register address bit label default description refer to r1413 (0585h) aif2 eq band 2 a 15:0 aif2dac_eq_ b2_a [15:0] 0001_1110 _1011_010 1 eq band 2 coefficient a register 0585h aif2 eq band 2 a register address bit label default description refer to r1414 (0586h) aif2 eq band 2 b 15:0 aif2dac_eq_ b2_b [15:0] 1111_0001 _0100_010 1 eq band 2 coefficient b register 0586h aif2 eq band 2 b
WM8994 production data w pd, april 2012, rev 4.4 320 register address bit label default description refer to r1415 (0587h) aif2 eq band 2 c 15:0 aif2dac_eq_ b2_c [15:0] 0000_1011 _0111_010 1 eq band 2 coefficient c register 0587h aif2 eq band 2 c register address bit label default description refer to r1416 (0588h) aif2 eq band 2 pg 15:0 aif2dac_eq_ b2_pg [15:0] 0000_0001 _1100_010 1 eq band 2 coefficient pg register 0588h aif2 eq band 2 pg register address bit label default description refer to r1417 (0589h) aif2 eq band 3 a 15:0 aif2dac_eq_ b3_a [15:0] 0001_1100 _0101_100 0 eq band 3 coefficient a register 0589h aif2 eq band 3 a register address bit label default description refer to r1418 (058ah) aif2 eq band 3 b 15:0 aif2dac_eq_ b3_b [15:0] 1111_0011 _0111_001 1 eq band 3 coefficient b register 058ah aif2 eq band 3 b register address bit label default description refer to r1419 (058bh) aif2 eq band 3 c 15:0 aif2dac_eq_ b3_c [15:0] 0000_1010 _0101_010 0 eq band 3 coefficient c register 058bh aif2 eq band 3 c register address bit label default description refer to r1420 (058ch) aif2 eq band 3 pg 15:0 aif2dac_eq_ b3_pg [15:0] 0000_0101 _0101_100 0 eq band 3 coefficient pg register 058ch aif2 eq band 3 pg
production data WM8994 w pd, april 2012, rev 4.4 321 register address bit label default description refer to r1421 (058dh) aif2 eq band 4 a 15:0 aif2dac_eq_ b4_a [15:0] 0001_0110 _1000_111 0 eq band 4 coefficient a register 058dh aif2 eq band 4 a register address bit label default description refer to r1422 (058eh) aif2 eq band 4 b 15:0 aif2dac_eq_ b4_b [15:0] 1111_1000 _0010_100 1 eq band 4 coefficient b register 058eh aif2 eq band 4 b register address bit label default description refer to r1423 (058fh) aif2 eq band 4 c 15:0 aif2dac_eq_ b4_c [15:0] 0000_0111 _1010_110 1 eq band 4 coefficient c register 058fh aif2 eq band 4 c register address bit label default description refer to r1424 (0590h) aif2 eq band 4 pg 15:0 aif2dac_eq_ b4_pg [15:0] 0001_0001 _0000_001 1 eq band 4 coefficient pg register 0590h aif2 eq band 4 pg register address bit label default description refer to r1425 (0591h) aif2 eq band 5 a 15:0 aif2dac_eq_ b5_a [15:0] 0000_0101 _0110_010 0 eq band 5 coefficient a register 0591h aif2 eq band 5 a register address bit label default description refer to r1426 (0592h) aif2 eq band 5 b 15:0 aif2dac_eq_ b5_b [15:0] 0000_0101 _0101_100 1 eq band 5 coefficient b register 0592h aif2 eq band 5 b
WM8994 production data w pd, april 2012, rev 4.4 322 register address bit label default description refer to r1427 (0593h) aif2 eq band 5 pg 15:0 aif2dac_eq_ b5_pg [15:0] 0100_0000 _0000_000 0 eq band 5 coefficient pg register 0593h aif2 eq band 5 pg register address bit label default description refer to r1536 (0600h) dac1 mixer volumes 8:5 adcr_dac1_ vol [3:0] 0000 sidetone str to dac1l and dac1r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db 3:0 adcl_dac1_ vol [3:0] 0000 sidetone stl to dac1l and dac1r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db register 0600h dac1 mixer volumes register address bit label default description refer to r1537 (0601h) dac1 left mixer routing 5 adcr_to_da c1l 0 enable sidetone str to dac1l 0 = disabled 1 = enabled 4 adcl_to_da c1l 0 enable sidetone stl to dac1l 0 = disabled 1 = enabled 2 aif2dacl_to _dac1l 0 enable aif2 (left) to dac1l 0 = disabled 1 = enabled 1 aif1dac2l_t o_dac1l 0 enable aif1 (timeslot 1, left) to dac1l 0 = disabled 1 = enabled 0 aif1dac1l_t o_dac1l 0 enable aif1 (timeslot 0, left) to dac1l 0 = disabled 1 = enabled register 0601h dac1 left mixer routing
production data WM8994 w pd, april 2012, rev 4.4 323 register address bit label default description refer to r1538 (0602h) dac1 right mixer routing 5 adcr_to_da c1r 0 enable sidetone str to dac1r 0 = disabled 1 = enabled 4 adcl_to_da c1r 0 enable sidetone stl to dac1r 0 = disabled 1 = enabled 2 aif2dacr_to _dac1r 0 enable aif2 (right) to dac1r 0 = disabled 1 = enabled 1 aif1dac2r_t o_dac1r 0 enable aif1 (timeslot 1, right) to dac1r 0 = disabled 1 = enabled 0 aif1dac1r_t o_dac1r 0 enable aif1 (timeslot 0, right) to dac1r 0 = disabled 1 = enabled register 0602h dac1 right mixer routing register address bit label default description refer to r1539 (0603h) dac2 mixer volumes 8:5 adcr_dac2_ vol [3:0] 0000 sidetone str to dac2l and dac2r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db 3:0 adcl_dac2_ vol [3:0] 0000 sidetone stl to dac2l and dac2r volume 0000 = -36db 0001 = -33db ?. (3db steps) 1011 = -3db 1100 = 0db register 0603h dac2 mixer volumes register address bit label default description refer to r1540 (0604h) dac2 left mixer routing 5 adcr_to_da c2l 0 enable sidetone str to dac2l 0 = disabled 1 = enabled 4 adcl_to_da c2l 0 enable sidetone stl to dac2l 0 = disabled 1 = enabled 2 aif2dacl_to _dac2l 0 enable aif2 (left) to dac2l 0 = disabled 1 = enabled 1 aif1dac2l_t o_dac2l 0 enable aif1 (timeslot 1, left) to dac2l 0 = disabled 1 = enabled 0 aif1dac1l_t o_dac2l 0 enable aif1 (timeslot 0, left) to dac2l 0 = disabled 1 = enabled register 0604h dac2 left mixer routing
WM8994 production data w pd, april 2012, rev 4.4 324 register address bit label default description refer to r1541 (0605h) dac2 right mixer routing 5 adcr_to_da c2r 0 enable sidetone str to dac2r 0 = disabled 1 = enabled 4 adcl_to_da c2r 0 enable sidetone stl to dac2r 0 = disabled 1 = enabled 2 aif2dacr_to _dac2r 0 enable aif2 (right) to dac2r 0 = disabled 1 = enabled 1 aif1dac2r_t o_dac2r 0 enable aif1 (timeslot 1, right) to dac2r 0 = disabled 1 = enabled 0 aif1dac1r_t o_dac2r 0 enable aif1 (timeslot 0, right) to dac2r 0 = disabled 1 = enabled register 0605h dac2 right mixer routing register address bit label default description refer to r1542 (0606h) aif1 adc1 left mixer routing 1 adc1l_to_ai f1adc1l 0 enable adcl / dmic1 (left) to aif1 (timeslot 0, left) output 0 = disabled 1 = enabled 0 aif2dacl_to _aif1adc1l 0 enable aif2 (left) to aif1 (timeslot 0, left) output 0 = disabled 1 = enabled register 0606h aif1 adc1 left mixer routing register address bit label default description refer to r1543 (0607h) aif1 adc1 right mixer routing 1 adc1r_to_ai f1adc1r 0 enable adcr / dmic1 (right) to aif1 (timeslot 0, right) output 0 = disabled 1 = enabled 0 aif2dacr_to _aif1adc1r 0 enable aif2 (right) to aif1 (timeslot 0, right) output 0 = disabled 1 = enabled register 0607h aif1 adc1 right mixer routing register address bit label default description refer to r1544 (0608h) aif1 adc2 left mixer routing 1 adc2l_to_ai f1adc2l 0 enable dmic2 (left) to aif1 (timeslot 1, left) output 0 = disabled 1 = enabled 0 aif2dacl_to _aif1adc2l 0 enable aif2 (left) to aif1 (timeslot 1, left) output 0 = disabled 1 = enabled register 0608h aif1 adc2 left mixer routing
production data WM8994 w pd, april 2012, rev 4.4 325 register address bit label default description refer to r1545 (0609h) aif1 adc2 right mixer routing 1 adc2r_to_ai f1adc2r 0 enable dmic2 (right) to aif1 (timeslot 1, right) output 0 = disabled 1 = enabled 0 aif2dacr_to _aif1adc2r 0 enable aif2 (right) to aif1 (timeslot 1, right) output 0 = disabled 1 = enabled register 0609h aif1 adc2 right mixer routing register address bit label default description refer to r1552 (0610h) dac1 left volume 9 dac1l_mute 1 dac1l soft mute control 0 = dac un-mute 1 = dac mute 8 dac1_vu 0 dac1l and dac1r volume update writing a 1 to this bit will cause the dac1l and dac1r volume to be updated simultaneously 7:0 dac1l_vol [7:0] 1100_0000 dac1l digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0610h dac1 left volume register address bit label default description refer to r1553 (0611h) dac1 right volume 9 dac1r_mute 1 dac1r soft mute control 0 = dac un-mute 1 = dac mute 8 dac1_vu 0 dac1l and dac1r volume update writing a 1 to this bit will cause the dac1l and dac1r volume to be updated simultaneously 7:0 dac1r_vol [7:0] 1100_0000 dac1r digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0611h dac1 right volume
WM8994 production data w pd, april 2012, rev 4.4 326 register address bit label default description refer to r1554 (0612h) dac2 left volume 9 dac2l_mute 1 dac2l soft mute control 0 = dac un-mute 1 = dac mute 8 dac2_vu 0 dac2l and dac2r volume update writing a 1 to this bit will cause the dac2l and dac2r volume to be updated simultaneously 7:0 dac2l_vol [7:0] 1100_0000 dac2l digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0612h dac2 left volume register address bit label default description refer to r1555 (0613h) dac2 right volume 9 dac2r_mute 1 dac2r soft mute control 0 = dac un-mute 1 = dac mute 8 dac2_vu 0 dac2l and dac2r volume update writing a 1 to this bit will cause the dac2l and dac2r volume to be updated simultaneously 7:0 dac2r_vol [7:0] 1100_0000 dac2r digital volume 00h = mute 01h = -71.625db ? (0.375db steps) c0h = 0db ffh = 0db register 0613h dac2 right volume register address bit label default description refer to r1556 (0614h) dac softmute 1 dac_softmu temode 0 dac unmute ramp select 0 = disabling soft-mute (dac[1/2][l/r]_mute=0) will cause the dac volume to change immediately to dac[1/2][l/r]_vol settings 1 = disabling soft-mute (dac[1/2][l/r]_mute=0) will cause the dac volume to ramp up gradually to the dac[1/2][l/r]_vol settings 0 dac_mutera te 0 dac soft mute ramp rate 0 = fast ramp (fs/2, maximum ramp time is 10.7ms at fs=48k) 1 = slow ramp (fs/32, maximum ramp time is 171ms at fs=48k) (note: ramp rate scales with sample rate.) register 0614h dac softmute
production data WM8994 w pd, april 2012, rev 4.4 327 register address bit label default description refer to r1568 (0620h) oversamplin g 1 adc_osr128 1 adc / digital microphone oversample rate select 0 = low power 1 = high performance 0 dac_osr128 0 dac oversample rate select 0 = low power 1 = high performance register 0620h oversampling register address bit label default description refer to r1569 (0621h) sidetone 9:7 st_hpf_cut [2:0] 000 sidetone hpf cut-off frequency (relative to 44.1khz sample rate) 000 = 2.7khz 001 = 1.35khz 010 = 675hz 011 = 370hz 100 = 180hz 101 = 90hz 110 = 45hz 111 = reserved note - the cut-off frequencies scale with the digital mixing (sysclk) clocking rate. the quoted figures apply to 44.1khz sample rate. 6 st_hpf 0 digital sidetone hpf select 0 = disabled 1 = enabled 1 str_sel 0 select source for sidetone str path 0 = adcr / dmicdat1 (right) 1 = dmicdat2 (right) 0 stl_sel 0 select source for sidetone stl path 0 = adcl / dmicdat1 (left) 1 = dmicdat2 (left) register 0621h sidetone register address bit label default description refer to r1792 (0700h) gpio 1 15 gp1_dir 1 gpio1 pin direction 0 = output 1 = input 14 gp1_pu 0 gpio1 pull-up enable 0 = disabled 1 = enabled 13 gp1_pd 0 gpio1 pull-down enable 0 = disabled 1 = enabled 10 gp1_pol 0 gpio1 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp1_op_cfg 0 gpio1 output configuration 0 = cmos 1 = open drain
WM8994 production data w pd, april 2012, rev 4.4 328 register address bit label default description refer to 8 gp1_db 1 gpio1 input de-bounce 0 = disabled 1 = enabled 6 gp1_lvl 0 gpio1 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp1_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp1_fn [4:0] 0_0000 gpio1 pin function 00h = adclrclk1 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0700h gpio 1 register address bit label default description refer to r1793 (0701h) gpio 2 15 gp2_dir 1 gpio2 pin direction 0 = reserved 1 = input 14 gp2_pu 0 gpio2 pull-up enable 0 = disabled 1 = enabled 13 gp2_pd 1 gpio2 pull-down enable 0 = disabled 1 = enabled 10 gp2_pol 0 gpio2 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 8 gp2_db 1 gpio2 input de-bounce 0 = disabled 1 = enabled
production data WM8994 w pd, april 2012, rev 4.4 329 register address bit label default description refer to 6 gp2_lvl 0 gpio2 level. read from this bit to read gpio input level. 4:0 gp2_fn [4:0] 0_0001 gpio2 pin function 00h = mclk2 01h = gpio 02h to 1fh = reserved register 0701h gpio 2 register address bit label default description refer to r1794 (0702h) gpio 3 15 gp3_dir 1 gpio3 pin direction 0 = output 1 = input 14 gp3_pu 0 gpio3 pull-up enable 0 = disabled 1 = enabled 13 gp3_pd 1 gpio3 pull-down enable 0 = disabled 1 = enabled 10 gp3_pol 0 gpio3 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp3_op_cfg 0 gpio3 output configuration 0 = cmos 1 = open drain 8 gp3_db 1 gpio3 input de-bounce 0 = disabled 1 = enabled 6 gp3_lvl 0 gpio3 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp3_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp3_fn [4:0] 0_0001 gpio3 pin function 00h = bclk2 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output
WM8994 production data w pd, april 2012, rev 4.4 330 register address bit label default description refer to 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0702h gpio 3 register address bit label default description refer to r1795 (0703h) gpio 4 15 gp4_dir 1 gpio4 pin direction 0 = output 1 = input 14 gp4_pu 0 gpio4 pull-up enable 0 = disabled 1 = enabled 13 gp4_pd 1 gpio4 pull-down enable 0 = disabled 1 = enabled 10 gp4_pol 0 gpio4 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp4_op_cfg 0 gpio4 output configuration 0 = cmos 1 = open drain 8 gp4_db 1 gpio4 input de-bounce 0 = disabled 1 = enabled 6 gp4_lvl 0 gpio4 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp4_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp4_fn [4:0] 0_0001 gpio4 pin function 00h = lrclk2 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status
production data WM8994 w pd, april 2012, rev 4.4 331 register address bit label default description refer to 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0703h gpio 4 register address bit label default description refer to r1796 (0704h) gpio 5 15 gp5_dir 1 gpio5 pin direction 0 = output 1 = input 14 gp5_pu 0 gpio5 pull-up enable 0 = disabled 1 = enabled 13 gp5_pd 1 gpio5 pull-down enable 0 = disabled 1 = enabled 10 gp5_pol 0 gpio5 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp5_op_cfg 0 gpio5 output configuration 0 = cmos 1 = open drain 8 gp5_db 1 gpio5 input de-bounce 0 = disabled 1 = enabled 6 gp5_lvl 0 gpio5 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp5_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp5_fn [4:0] 0_0001 gpio5 pin function 00h = dacdat2 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output
WM8994 production data w pd, april 2012, rev 4.4 332 register address bit label default description refer to 17h to 1fh = reserved register 0704h gpio 5 register address bit label default description refer to r1797 (0705h) gpio 6 15 gp6_dir 1 gpio6 pin direction 0 = output 1 = input 14 gp6_pu 0 gpio6 pull-up enable 0 = disabled 1 = enabled 13 gp6_pd 1 gpio6 pull-down enable 0 = disabled 1 = enabled 10 gp6_pol 0 gpio6 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp6_op_cfg 0 gpio6 output configuration 0 = cmos 1 = open drain 8 gp6_db 1 gpio6 input de-bounce 0 = disabled 1 = enabled 6 gp6_lvl 0 gpio6 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp6_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp6_fn [4:0] 0_0001 gpio6 pin function 00h = adclrclk2 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0705h gpio 6
production data WM8994 w pd, april 2012, rev 4.4 333 register address bit label default description refer to r1798 (0706h) gpio 7 15 gp7_dir 1 gpio7 pin direction 0 = output 1 = input 14 gp7_pu 0 gpio7 pull-up enable 0 = disabled 1 = enabled 13 gp7_pd 1 gpio7 pull-down enable 0 = disabled 1 = enabled 10 gp7_pol 0 gpio7 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp7_op_cfg 0 gpio7 output configuration 0 = cmos 1 = open drain 8 gp7_db 1 gpio7 input de-bounce 0 = disabled 1 = enabled 6 gp7_lvl 0 gpio7 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp7_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp7_fn [4:0] 0_0001 gpio7 pin function 00h = adcdat2 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0706h gpio 7
WM8994 production data w pd, april 2012, rev 4.4 334 register address bit label default description refer to r1799 (0707h) gpio 8 15 gp8_dir 1 gpio8 pin direction 0 = output 1 = input 14 gp8_pu 0 gpio8 pull-up enable 0 = disabled 1 = enabled 13 gp8_pd 1 gpio8 pull-down enable 0 = disabled 1 = enabled 10 gp8_pol 0 gpio8 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp8_op_cfg 0 gpio8 output configuration 0 = cmos 1 = open drain 8 gp8_db 1 gpio8 input de-bounce 0 = disabled 1 = enabled 6 gp8_lvl 0 gpio8 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp8_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp8_fn [4:0] 0_0001 gpio8 pin function 00h = dacdat3 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0707h gpio 8
production data WM8994 w pd, april 2012, rev 4.4 335 register address bit label default description refer to r1800 (0708h) gpio 9 15 gp9_dir 1 gpio9 pin direction 0 = output 1 = input 14 gp9_pu 0 gpio9 pull-up enable 0 = disabled 1 = enabled 13 gp9_pd 1 gpio9 pull-down enable 0 = disabled 1 = enabled 10 gp9_pol 0 gpio9 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp9_op_cfg 0 gpio9 output configuration 0 = cmos 1 = open drain 8 gp9_db 1 gpio9 input de-bounce 0 = disabled 1 = enabled 6 gp9_lvl 0 gpio9 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp9_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp9_fn [4:0] 0_0001 gpio9 pin function 00h = adcdat3 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0708h gpio 9
WM8994 production data w pd, april 2012, rev 4.4 336 register address bit label default description refer to r1801 (0709h) gpio 10 15 gp10_dir 1 gpio10 pin direction 0 = output 1 = input 14 gp10_pu 0 gpio10 pull-up enable 0 = disabled 1 = enabled 13 gp10_pd 1 gpio10 pull-down enable 0 = disabled 1 = enabled 10 gp10_pol 0 gpio10 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp10_op_cf g 0 gpio10 output configuration 0 = cmos 1 = open drain 8 gp10_db 1 gpio10 input de-bounce 0 = disabled 1 = enabled 6 gp10_lvl 0 gpio10 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp10_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp10_fn [4:0] 0_0001 gpio10 pin function 00h = lrclk3 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 0709h gpio 10
production data WM8994 w pd, april 2012, rev 4.4 337 register address bit label default description refer to r1802 (070ah) gpio 11 15 gp11_dir 1 gpio11 pin direction 0 = output 1 = input 14 gp11_pu 0 gpio11 pull-up enable 0 = disabled 1 = enabled 13 gp11_pd 1 gpio11 pull-down enable 0 = disabled 1 = enabled 10 gp11_pol 0 gpio11 polarity select 0 = non-inverted (active high) 1 = inverted (active low) 9 gp11_op_cf g 0 gpio11 output configuration 0 = cmos 1 = open drain 8 gp11_db 1 gpio11 input de-bounce 0 = disabled 1 = enabled 6 gp11_lvl 0 gpio11 level. write to this bit to set a gpio output. read from this bit to read gpio input level. for output functions only, when gp11_pol is set, the register contains the opposite logic level to the external pin. 4:0 gp11_fn [4:0] 0_0001 gpio11 pin function 00h = bclk3 01h = gpio 02h = sdout 03h = irq 04h = temperature (shutdown) status 05h = micbias1 current detect 06h = micbias1 short circuit detect 07h = micbias2 current detect 08h = micbias2 short circuit detect 09h = fll1 lock 0ah = fll2 lock 0bh = src1 lock 0ch = src2 lock 0dh = aif1 drc1 signal detect 0eh = aif1 drc2 signal detect 0fh = aif2 drc signal detect 10h = write sequencer status 11h = fifo error 12h = opclk clock output 13h = temperature (warning) status 14h = dc servo done 15h = fll1 clock output 16h = fll2 clock output 17h to 1fh = reserved register 070ah gpio 11
WM8994 production data w pd, april 2012, rev 4.4 338 register address bit label default description refer to r1824 (0720h) pull control (1) 11 dmicdat2_p u 0 dmicdat2 pull-up enable 0 = disabled 1 = enabled 10 dmicdat2_p d 0 dmicdat2 pull-down enable 0 = disabled 1 = enabled 9 dmicdat1_p u 0 dmicdat1 pull-up enable 0 = disabled 1 = enabled 8 dmicdat1_p d 0 dmicdat1 pull-down enable 0 = disabled 1 = enabled 7 mclk1_pu 0 mclk1 pull-up enable 0 = disabled 1 = enabled 6 mclk1_pd 0 mclk1 pull-down enable 0 = disabled 1 = enabled 5 dacdat1_pu 0 dacdat1 pull-up enable 0 = disabled 1 = enabled 4 dacdat1_pd 0 dacdat1 pull-down enable 0 = disabled 1 = enabled 3 daclrclk1_ pu 0 lrclk1 pull-up enable 0 = disabled 1 = enabled 2 daclrclk1_ pd 0 lrclk1 pull-down enable 0 = disabled 1 = enabled 1 bclk1_pu 0 bclk1 pull-up enable 0 = disabled 1 = enabled 0 bclk1_pd 0 bclk1 pull-down enable 0 = disabled 1 = enabled register 0720h pull control (1) register address bit label default description refer to r1825 (0721h) pull control (2) 8 csnaddr_pd 1 cs/addr pull-down enable 0 = disabled 1 = enabled 6 ldo2ena_pd 1 ldo2ena pull-down enable 0 = disabled 1 = enabled 4 ldo1ena_pd 1 ldo1ena pull-down enable 0 = disabled 1 = enabled 2 cifmode_pd 1 cifmode pull-down enable 0 = disabled 1 = enabled
production data WM8994 w pd, april 2012, rev 4.4 339 register address bit label default description refer to 1 spkmode_pu 1 spkmode pull-up enable 0 = disabled 1 = enabled register 0721h pull control (2) register address bit label default description refer to r1840 (0730h) interrupt status 1 10 gp11_eint 0 gpio11 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 9 gp10_eint 0 gpio10 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 8 gp9_eint 0 gpio9 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 7 gp8_eint 0 gpio8 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 6 gp7_eint 0 gpio7 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 5 gp6_eint 0 gpio6 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 4 gp5_eint 0 gpio5 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 3 gp4_eint 0 gpio4 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 2 gp3_eint 0 gpio3 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 1 gp2_eint 0 gpio2 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 0 gp1_eint 0 gpio1 interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. register 0730h interrupt status 1
WM8994 production data w pd, april 2012, rev 4.4 340 register address bit label default description refer to r1841 (0731h) interrupt status 2 15 temp_warn_ eint 0 temperature warning interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 14 dcs_done_e int 0 dc servo interrupt (rising edge triggered) note: cleared when a ?1? is written. 13 wseq_done _eint 0 write sequencer interrupt (rising edge triggered) note: cleared when a ?1? is written. 12 fifos_err_e int 0 digital core fifo error interrupt (rising edge triggered) note: cleared when a ?1? is written. 11 aif2drc_sig _det_eint 0 aif2 drc activity detect interrupt (rising edge triggered) note: cleared when a ?1? is written. 10 aif1drc2_si g_det_eint 0 aif1 drc2 (timeslot 1) activity detect interrupt (rising edge triggered) note: cleared when a ?1? is written. 9 aif1drc1_si g_det_eint 0 aif1 drc1 (timeslot 0) activity detect interrupt (rising edge triggered) note: cleared when a ?1? is written. 8 src2_lock_ eint 0 src2 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 7 src1_lock_ eint 0 src1 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 6 fll2_lock_e int 0 fll2 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 5 fll1_lock_e int 0 fll1 lock interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 4 mic2_shrt_e int 0 micbias2 short circuit interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 3 mic2_det_ei nt 0 micbias2 current detect interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 2 mic1_shrt_e int 0 micbias1 short circuit interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 1 mic1_det_ei nt 0 micbias1 current detect interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. 0 temp_shut_ eint 0 temperature shutdown interrupt (rising and falling edge triggered) note: cleared when a ?1? is written. register 0731h interrupt status 2
production data WM8994 w pd, april 2012, rev 4.4 341 register address bit label default description refer to r1842 (0732h) interrupt raw status 2 15 temp_warn_ sts 0 temperature warning status 0 = temperature is below warning level 1 = temperature is above warning level 14 dcs_done_s ts 0 dc servo status 0 = dc servo not complete 1 = dc servo complete 13 wseq_done _sts 0 write sequencer status 0 = sequencer busy (sequence in progress) 1 = sequencer idle 12 fifos_err_s ts 0 digital core fifo error status 0 = normal operation 1 = fifo error 11 aif2drc_sig _det_sts 0 aif2 drc signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 10 aif1drc2_si g_det_sts 0 aif1 drc2 (timeslot 1) signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 9 aif1drc1_si g_det_sts 0 aif1 drc1 (timeslot 0) signal detect status 0 = signal threshold not exceeded 1 = signal threshold exceeded 8 src2_lock_ sts 0 src2 lock status 0 = not locked 1 = locked 7 src1_lock_ sts 0 src1 lock status 0 = not locked 1 = locked 6 fll2_lock_s ts 0 fll2 lock status 0 = not locked 1 = locked 5 fll1_lock_s ts 0 fll1 lock status 0 = not locked 1 = locked 4 mic2_shrt_s ts 0 micbias2 short circuit status 0 = normal 1 = short circuit threshold exceeded 3 mic2_det_st s 0 micbias2 current detect status 0 = normal 1 = current detect threshold exceeded 2 mic1_shrt_s ts 0 micbias1 short circuit status 0 = normal 1 = short circuit threshold exceeded 1 mic1_det_st s 0 micbias1 current detect status 0 = normal 1 = current detect threshold exceeded 0 temp_shut_ sts 0 temperature shutdown status 0 = temperature is below shutdown level 1 = temperature is above shutdown level register 0732h interrupt raw status 2
WM8994 production data w pd, april 2012, rev 4.4 342 register address bit label default description refer to r1848 (0738h) interrupt status 1 mask 10 im_gp11_ein t 1 gpio11 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 9 im_gp10_ein t 1 gpio10 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 8 im_gp9_eint 1 gpio9 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 7 im_gp8_eint 1 gpio8 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 6 im_gp7_eint 1 gpio7 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 5 im_gp6_eint 1 gpio6 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 4 im_gp5_eint 1 gpio5 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 3 im_gp4_eint 1 gpio4 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 2 im_gp3_eint 1 gpio3 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 1 im_gp2_eint 1 gpio2 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 0 im_gp1_eint 1 gpio1 interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. register 0738h interrupt status 1 mask register address bit label default description refer to r1849 (0739h) interrupt status 2 mask 15 im_temp_wa rn_eint 1 temperature warning interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 14 im_dcs_don e_eint 1 dc servo interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 13 im_wseq_do ne_eint 1 write sequencer interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 12 im_fifos_er r_eint 1 digital core fifo error interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 11 im_aif2drc_ sig_det_ein t 1 aif2 drc activity detect interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt.
production data WM8994 w pd, april 2012, rev 4.4 343 register address bit label default description refer to 10 im_aif1drc2 _sig_det_ei nt 1 aif1 drc2 (timeslot 1) activity detect interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 9 im_aif1drc1 _sig_det_ei nt 1 aif1 drc1 (timeslot 0) activity detect interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 8 im_src2_loc k_eint 1 src2 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 7 im_src1_loc k_eint 1 src1 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 6 im_fll2_loc k_eint 1 fll2 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 5 im_fll1_loc k_eint 1 fll1 lock interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 4 im_mic2_shr t_eint 1 micbias2 short circuit interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 3 im_mic2_det _eint 1 micbias2 current interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 2 im_mic1_shr t_eint 1 micbias1 short circuit interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 1 im_mic1_det _eint 1 micbias1 current interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. 0 im_temp_sh ut_eint 1 temperature shutdown interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. register 0739h interrupt status 2 mask register address bit label default description refer to r1856 (0740h) interrupt control 0 im_irq 0 irq output interrupt mask. 0 = do not mask interrupt. 1 = mask interrupt. register 0740h interrupt control register address bit label default description refer to r1864 (0748h) irq debounce 5 temp_warn_ db 1 temperature warning de-bounce 0 = disabled 1 = enabled 4 mic2_shrt_d b 1 micbias2 short circuit de-bounce 0 = disabled 1 = enabled
WM8994 production data w pd, april 2012, rev 4.4 344 register address bit label default description refer to 3 mic2_det_db 1 micbias2 current detect de-bounce 0 = disabled 1 = enabled 2 mic1_shrt_d b 1 micbias1 short circuit de-bounce 0 = disabled 1 = enabled 1 mic1_det_db 1 micbias1 current detect de-bounce 0 = disabled 1 = enabled 0 temp_shut_ db 1 thermal shutdown de-bounce 0 = disabled 1 = enabled register 0748h irq debounce
production data WM8994 w pd, april 2012, rev 4.4 345 applications information recommended external components audio input paths the WM8994 provides 8 analogue audio inputs. each of these inputs is referenced to the internal dc reference, vmid. a dc blocking capacitor is r equired for each input pin used in the target application. the choice of capacitor is determined by the fi lter that is formed between that capacitor and the input impedance of the input pin. the circuit is illustrated in figure 87. figure 87 audio input path dc blocking capacitor if the input impedance is known, and the cut-off frequency is known, then the minimum capacitor value may be derived easily. however, it can be seen from the representation in figure 87 that the input impedance is not fixed in all applications but c an vary with gain and boost amplifier settings. the pga input resistance for every gain setting is detailed in table 145. in1l_vol[4:0], in2l_vol[4:0], in1r_vol[4:0], in2r_vol[4:0] volume (db) input resistance (k ? ) single-ended mode differential mode 00000 -16.5 58 52.5 00001 -15.0 56.9 50.6 00010 -13.5 55.6 48.6 00011 -12.0 54.1 46.4 00100 -10.5 52.5 44.1 00101 -9.0 50.7 41.5 00110 -7.5 48.6 38.9 00111 -6.0 46.5 36.2 01000 -4.5 44.1 33.4 01001 -3.0 41.6 30.6 01010 -1.5 38.9 27.8 01011 0 36.2 25.1 01100 +1.5 33.4 22.5 01101 +3.0 30.6 20.0 01110 +4.5 27.8 17.7 01111 +6.0 25.1 15.6 10000 +7.5 22.5 13.6 10001 +9.0 20.1 11.9 10010 +10.5 17.8 10.3 10011 +12.0 15.6 8.9 10100 +13.5 13.7 7.6
WM8994 production data w pd, april 2012, rev 4.4 346 in1l_vol[4:0], in2l_vol[4:0], in1r_vol[4:0], in2r_vol[4:0] volume (db) input resistance (k ? ) single-ended mode differential mode 10101 +15.0 11.9 6.5 10110 +16.5 10.3 5.6 10111 +18.0 8.9 4.8 11000 +19.5 7.7 4.1 11001 +21.0 6.6 3.5 11010 +22.5 5.6 2.9 11011 +24.0 4.8 2.5 11100 +25.5 4.1 2.1 11101 +27.0 3.5 1.8 11110 +28.5 2.9 1.5 11111 +30.0 2.5 1.3 table 145 pga input pin resistance the appropriate input capacitor may be selected using the pga input resistance data provided in table 145, depending on the required pga gain setting(s). the choice of capacitor for a 20hz cut-off frequency is shown in table 146 for a selection of typical input impedance conditions. input impedance minimum capacitance for 20hz pass band 2k ? 4 ? f 15k ? 0.5 ? f 30k ? 0.27 ? f 60k ? 0.13 ? f table 146 audio input dc blocking capacitors using the figures in table 146, it follows that a 1 ? f capacitance for all input connections will give good results in most cases. tantalum electrolytic capacitors are particularly suitable as they offer high stability in a small package size. ceramic equivalents are a cost effective alternative to the superior tantalum packages, but care must be taken to ensure the desired capacitance is maintained at the avdd1 operating voltage. also, ceramic capacitors may show microphonic effects, w here vibrations and mechanical conditions give rise to electrical signals. this is particularly problematic for microphone input paths where a large signal gain is required. a single capacitor is required for a line input or single-ended microphone connection. in the case of a differential microphone connection, a dc blocking capacitor is required on both input pins. headphone output path the headphone output on WM8994 is ground referenced and therefore does not require the large, expensive capacitors necessary for vmid referenc e solutions. for best audio performance, it is recommended to connect a zobel network to the audio output pins. this network should comprise of a 100nf capacitor and 20ohm resistor in series with each other (see ?analogue outputs? section). these components have the effect of dampening high frequenc y oscillations or instabilities that can arise outside the audio band under certain conditions. possible sources of these instabilities include the inductive load of a headphone coil or an active load in the form of an external line amplifier.
production data WM8994 w pd, april 2012, rev 4.4 347 earpiece driver output path the earpiece driver on hpout2p and hpout2n is designed as a 32ohm btl speaker driver. the outputs are referenced to the internal dc reference vmid, but direct connection to the speaker is possible because of the btl configuration. there is no requirement for dc blocking capacitors. line output paths the WM8994 provides four line outputs (lineout 1p, lineout1n, lineout2p and lineout2n). each of these outputs is referenced to the internal dc reference, vmid. in any case where a line output is used in a single-ended configuration (i.e. referenced to agnd), a dc blocking capacitor will be required in order to remove the dc bias. in the case where a pair of line outputs is configured as a btl differential pair, then the dc blocking capacitor should be omitted. the choice of capacitor is determined from the filter that is formed between the capacitor and the load impedance ? see figure 88. figure 88 line output path components load impedance minimum capacitance for 20hz pass band 10k ? 0.8 ? f 47k ? 0.17 ? f table 147 line output frequency cut-off using the figures in table 147, it follows that that a 1 ? f capacitance would be a suitable choice for a line load. tantalum electrolytic capacitors are again particularly suitable but ceramic equivalents are a cost effective alternative. care must be taken to ensure the desired capacitance is maintained at the appropriate operating voltage.
WM8994 production data w pd, april 2012, rev 4.4 348 power supply decoupling electrical coupling exists particularly in digital logic systems where switching in one sub-system causes fluctuations on the power supply. this effect occurs because the inductance of the power supply acts in opposition to the changes in current flow that are caused by the logic switching. the resultant variations (or ?spikes?) in the power supply voltage can cause malfunctions and unintentional behavior in other components. a decoupling (or ?bypass?) capacitor can be used as an energy storage component which will provide power to the decoupled circuit for the duration of these power supply variations, protecting it from malfunctions that could otherwise arise. coupling also occurs in a lower frequency form when ripple is present on the power supply rail caused by changes in the load current or by limitations of the power supply regulation method. in audio components such as the WM8994, these variations can alter the performance of the signal path, leading to degradation in signal quality. a decoupling (or ?bypass?) capacitor can be used to filter these effects, by presenting the ripple voltage with a low impedance path that does not affect the circuit to be decoupled. these coupling effects are addressed by placi ng a capacitor between the supply rail and the corresponding ground reference. in the case of systems comprising multiple power supply rails, decoupling should be provided on each rail. the recommended power supply decoupling capacitors for WM8994 are listed below in table 148. power supply decoupling capacitor ldo1vdd, ldo2vdd, dbvdd, avdd2 0.1 ? f ceramic (see note) spkvdd1/spkvdd2 4.7 ? f ceramic avdd1 4.7 ? f ceramic dcvdd 1 ? f ceramic cpvdd 4.7 ? f ceramic vmidc 4.7 ? f ceramic vrefc 1 ? f ceramic table 148 power supply decoupling capacitors note: 0.1 ? f is required with 4.7 ? f a guide to the total required power rail capacitance, including that at the regulator output. all decoupling capacitors should be placed as close as possible to the WM8994 device. the connection between agnd, the avdd1 decoupling capacitor and the main system ground should be made at a single point as close as possible to the agnd ball of the WM8994. the vmid capacitor is not, technically, a decoupling capacitor. however, it does serve a similar purpose in filtering noise on the vmid reference. the connection between agnd, the vmid decoupling capacitor and the main system ground should be made at a single point as close as possible to the agnd ball of the WM8994. due to the wide tolerance of many types of ceramic capacitors, care must be taken to ensure that the selected components provide the required capaci tance across the required temperature and voltage ranges in the intended application. for most applications, the use of ceramic capacitors with capacitor dielectric x5r is recommended.
production data WM8994 w pd, april 2012, rev 4.4 349 charge pump components a fly-back capacitor is required between the cpca and cpcb pins. the required capacitance is 2.2f at 2v. a decoupling capacitor is required on cpvoutp and cpvoutn; the recommended value is 2.2f at 2v. the positioning of the charge pump capacitors is important, particularly the fly-back capacitor. these capacitors should be placed as close as possible to the WM8994. due to the wide tolerance of many types of ceramic capacitors, care must be taken to ensure that the selected components provide the required capaci tance across the required temperature and voltage ranges in the intended application. for most applications, the use of ceramic capacitors with capacitor dielectric x5r is recommended. microphone bias circuit the WM8994 is designed to interface easily with up to four analogue microphones. these may be connected in single-ended or differential configurations, as illustrated in figure 89. the single-ended method allows greater capability for the connection of multiple audio sources simultaneously, whilst the differential method provides better performance due to its rejection of common-mode noise. in either configuration, the microphone requires a bias current (electret condenser microphones) or voltage supply (silicon microphones), which can be provided by micbias1 or micbias2. a current-limiting resistor is also required when using an electret condenser microphone (ecm). the resistance should be chosen according to the minimum operating impedance of the microphone and micbias voltage so that the maximum bias current of the WM8994 is not exceeded. wolfson recommends a 2.2k ? current limiting resistor as it provides compatibility with a wide range of microphone models. mic to input mixers + - pga line input vmid in1ln, in2ln, in1rn, in2rn in1lp, in2lp, in1rp, in2rp micbias1/2 c 2k2 4.7uf agnd figure 89 single-ended and differential analogue microphone connections the WM8994 also supports up to four digital microphone inputs. the micbias1 generator is suitable for use as a low noise supply for digital microphones, as shown in figure 90.
WM8994 production data w pd, april 2012, rev 4.4 350 figure 90 digital microphone connection the micbias generators are identical output-compensated amplifiers, which require an external capacitor in order to guarantee accuracy and stability. the recommended capacitance is 4.7 ? f. a ceramic type is a suitable choice here, providing that care is taken to choose a component that exhibits this capacitance at the intended micbias voltage. the maximum output current is noted in the ?electrical characteristics?. this limit must be observed on each micbias output, especially if more than one microphone is connected to a single micbias pin. the micbias output voltage can be adjusted using r egister control to suit the requirements of the microphone. class d speaker connections the WM8994 incorporates two class d/ab 1w speaker drivers. by default, the speaker drivers operate in class d mode, which offers high amplifier efficiency at large signal levels. as the class d output is a pulse width modulated signal, the choice of speakers and tracking of signals is critical for ensuring good performance and reducing emi in this mode. the efficiency of the speaker drivers is affected by the series resistance between the WM8994 and the speaker (e.g. pcb track loss and inductor esr) as shown in figure 91. this resistance should be as low as possible to maximise efficiency. figure 91 speaker connection losses
production data WM8994 w pd, april 2012, rev 4.4 351 the class d output requires external filtering in order to recreate the audio signal. this may be implemented using a 2 nd order lc or 1 st order rc filter, or else may be achieved by using a loudspeaker whose internal inductance provides the required filter response. an lc or rc filter should be used if the loudspeaker characteristics are unknown or unsuitable, or if the length of the loudspeaker connection is likely to lead to emi problems. in applications where it is necessary to provide class d filter components, a 2 nd order lc filter is the recommended solution as it provides more attenuation at higher frequencies and minimises power dissipated in the filter when compared to a first order rc filter (lower esr). this maximises both rejection of unwanted switching frequencies and overall speaker efficiency. a suitable implementation is illustrated in figure 92. figure 92 class d output filter components a simple equivalent circuit of a loudspeaker consists of a serially connected resistor and inductor, as shown in figure 93. this circuit provides a lo w pass filter for the speaker output. if the loudspeaker characteristics are suitable, then the loudspeaker itse lf can be used in place of the filter components described earlier. this is known as ?filterless? operation. figure 93 speaker equivalent circuit for filterless operation for filterless class d operation, it is important to ensure that a speaker with suitable inductance is chosen. for example, if we know the speaker impedance is 8 ? and the desired cut-off frequency is 20khz, then the optimum speaker inductance may be calculated as: 8 ? loudspeakers typically have an inductance in the range 20 ? h to 100 ? h, however, it should be noted that a loudspeaker inductance will not be constant across the relevant frequencies for class d operation (up to and beyond the class d switching frequency). care should be taken to ensure that the cut-off frequency of the loudspeaker?s filter ing is low enough to suppress the high frequency energy of the class d switching and, in so doing, to prevent speaker damage. the class d outputs of the WM8994 operate at much higher frequencies than is recommended for most speakers and it must be ensured that the cut-off frequency is low enough to protect the speaker.
WM8994 production data w pd, april 2012, rev 4.4 352 recommended external components diagram figure 94 provides a summary of recommended external components for WM8994. note that this diagram does not include any components that are specific to the end application e.g. it does not include filtering on the speaker outputs (assume filterless class d operation), rf decoupling, or rf filtering for pins which connect to the external world i.e. headphone or speaker outputs. WM8994 avdd1 agnd dcvdd cpvdd avdd2 spkvdd1/2 dgnd cpgnd spkgnd1/2 mclk1 dacdat1 lrclk1 bclk1 adcdat1 sda sclk in1lp in1rp in2ln/dmicdat1 in2lp/vrxn in1rn in1ln in2rp/vrxp in2rn/dmicdat2 micbias1 vmidc micbias2 hpout2n hpout2p hpout1l hpout1fb hpout1r lineout1n lineout2p lineout2n lineout1p lineoutfb spkoutln spkoutrp spkoutrn spkoutlp cpca cpvoutp cpvoutn cpcb 2.2 f 2.2 f 2.2 f loudspeaker earpiece speaker 4.7 f micbias1 headset 1 f 1 f 1 f 1 f 1 f 4.7 f 0.1 f 4.7 f 4.7 f vbat 1.8v audio interface 1 control interface 1 f 1 f 1 f 1 f 0.1 f 0.1 f spkmode loudspeaker 3.0v (from internal ldo) 1.0v (from internal ldo) gpio2/mclk2 master clocks adclrclk1/gpio1 gpio5/dacdat2 gpio4/lrclk2 gpio3/bclk2 gpio7adcdat2 audio interface 2 gpio6/adclrclk2 gpio8/dacdat3 gpio10/lrclk3 gpio11/bclk3 gpio9/adcdat3 audio interface 3 cs/addr ldo1ena ldo2ena ldo control vrefc 1 f dmicclk digital mic clock hp2gnd ldo1vdd refgnd 0.1 f dbvdd ldo2vdd 1 f micbias2 1 f 1 f 1 f 1 f analogue audio (mic / line) inputs 4.7 f cifmode note that the optimum input capacitance will vary according to the required frequency response and the applicable input impedance. note that input capacitors are not required for connection to digital microphone (dmic) components. line outputs (can be configured as differential pairs or stereo pairs). note that the optimum output capacitance will vary according to the required frequency response. the ground feedback connection to lineoutfb is optional. (note: hpout1fb ground connection close to headset jack) speaker mode select 4.7 f 4.7 f 20 20 figure 94 recommended external components diagram
production data WM8994 w pd, april 2012, rev 4.4 353 digital audio interface clocking configurations the WM8994 provides 3 digital audio interfaces and supports many different clocking configurations. the asynchronous sample rate converter enables more than one digital audio interface to be supported simultaneously, even when there is no synchronisation between these interfaces. in a typical application, this enables audio mixing between a multimedia applications processor and a baseband voice call processor, for example. the aif1 and aif2 audio interfaces can be configur ed in master or slave modes, and can also support defined combinations of mixed sample rates. in all applications, it is important that the system clocking configuration is correctly designed. incorrect clock configurations will lead to audible clicks arising from dropped or repeated audio samples; this is caused by the inherent tolerances of multiple asynchronous system clocks. to ensure reliable clocking of the audio interface functions, it is a requirement that, for each audio interface, the external interface clocks (eg. bclk, lrclk) are derived from the same clock source as the respective aif clock (aifnclk). in aif master mode, the external bclk and lrclk signals are generated by the WM8994 and synchronisation of these signals with aifnclk is guaranteed. in this case, clocking of the aif is derived from the mclk1 or mclk2 inputs, either directly or via one of the frequency locked loop (fll) circuits. in aif slave mode, the external bclk and lrclk signals are generated by another device, as inputs to the WM8994. in this case, it must be ensured that the respective aif clock is generated from a source that is synchronised to the external bclk and lrclk inputs. in a typical slave mode application, the bclk input is selected as the clock reference, using the fll to perform frequency shifting. it is also possible to use the mclk1 or mclk2 inputs, but only if the selected clock is synchronised externally to the bclk and lrclk inputs. the valid aif clocking configurations are listed in table 149 for aif master and aif slave modes. audio interface mode clocking configuration aif master mode aifnclk_src selects fll1 or fll2 as aifnclk source; flln_refclk_src selects mclk1 or mclk2 as flln source. aifnclk_src selects mclk1 or mclk2 as aifnclk source. aif slave mode aifnclk_src selects fll1 or fll2 as aifnclk source; flln_refclk_src selects bclkn as flln source. aifnclk_src selects mclk1 or mclk2 as aifnclk source, provided mclk is externally synchronised to the bclkn input. aifnclk_src selects fll1 or fll2 as aifnclk source; flln_refclk_src selects mclk1 or mclk2 as flln source, provided mclk is externally synchronised to the bclkn input. table 149 audio interface clocking confgurations in each case, the aifnclk frequency must be a valid ratio to the lrclkn frequency; the supported clocking ratios are defined by the aifnclk_rate register. the valid aif clocking configurations are illustrated in figure 95 to figure 99 below. note that, where mclk1 is illustrated as the clock source, it is equal ly possible to select mclk2 as the clock source. similarly, in cases where fll1 is illustrated, it is equally possible to select the fll2.
WM8994 production data w pd, april 2012, rev 4.4 354 figure 95 aif master mode, using mclk as reference mclk1 mclk2 figure 96 aif master mode, using mclk and fll as reference WM8994 aifn (slave mode) processor bclkn lrclkn dacdatn adcdatn aifnclk_src fll1_refclk_src fll1 aifnclk figure 97 aif slave mode, using bclk and fll as reference
production data WM8994 w pd, april 2012, rev 4.4 355 mclk1 mclk2 figure 98 aif slave mode, using mclk as reference WM8994 aifnclk aifn (slave mode) bclkn lrclkn dacdatn adcdatn aifnclk_src fll1_refclk_src fll1 processor synchronous clock generator figure 99 aif slave mode, using mclk and fll as reference
WM8994 production data w pd, april 2012, rev 4.4 356 pcb layout considerations poor pcb layout will degrade the performance and be a contributory factor in emi, ground bounce and resistive voltage losses. all external components should be placed as close to the WM8994 device as possible, with current loop areas kept as small as possible. specific factors relating to class d loudspeaker connection are detailed below. class d loudspeaker connection long, exposed pcb tracks or connection wires will emit emi. the distance between the WM8994 and the loudspeaker should therefore be kept as short as possible. where speakers are connected to the pcb via a cable form, it is recommended that a shielded twisted pair cable is used. the shield should be connected to the main system, with care taken to ensure ground loops are avoided. further reduction in emi can be achieved usi ng pcb ground (or vdd) planes and also by using passive lc components to filter the class d switching waveform. when passive filtering is used, low esr components should be chosen in order to minimise the series resistance between the WM8994 and the speaker, maximising the power efficiency. lc passive filtering will usually be effective at reducing emi at frequencies up to around 30mhz. to reduce emissions at higher frequencies, ferrite beads can also be used. these should be positioned as close to the device as possible. these techniques for emi reduction are illustrated in figure 100. figure 100 emi reduction techniques
production data WM8994 w pd, april 2012, rev 4.4 357 package dimensions b: 72 ball w-csp package 4.511 x 4.023 x 0.7 mm body, 0.50 mm ball pitch a1 corner top view e z 0.10 2 x d 5 4 detail 2 detail 2 a a2 2 z 0.10 2 x a1 z bbb z 1 solder ball e1 a d1 detail 1 d c b g f e e e bottom view 1 6 54 32 6 f1 f2 g h notes: 1. primary datum -z- and seating plane are define d by the spherical crowns of the solder balls. 2. this dimension includes stand- off height ?a1? and backside coating. 3. a1 corner is identified by ink/laser mark on top package. 4. bilateral tolerance zone is appl ied to each side of the package body. 5. ?e? represents the basic solder ball grid pitch. 6. this drawing is subject to change without notice. 7. follows jedec design guide mo-211-c. 8. f1 = nominal distance of ball centre to die edge x axis (as per pod) ? applicable to all corners of die. 9. f2 = nominal distance of die centre to die edge in y axis (as per pod) ? appli cable to all corners of die. a1 0.219 d d1 e e1 e 4.00 bsc 4.023 3.50 bsc 0.50 bsc 4.511 dimensions (mm) symbols min nom max note a 0.7 a2 0.361 0.386 0.411 5 f1 0.785 0.615 0.244 0.269 g 0.070 0.035 0.105 h 0.314 bsc 7 f2 h 8 9 dm068.c 0.2555 bsc 0.2615 bsc 8 9 4.471 3.983 4.551 4.063
WM8994 production data w pd, april 2012, rev 4.4 358 important notice wolfson microelectronics plc (?wolfson?) products and services are sold subject to wolfson?s terms and conditions of sale, delivery and payment supplied at the time of order acknowledgement. wolfson warrants performance of its products to the specifications in effect at the date of shipment. wolfson reserves the right to make changes to its products and specifications or to discontinue any product or service without notice. customers should therefore obtain the latest version of relevant informati on from wolfson to verify that the information is current. testing and other quality control techniques are utilised to the extent wolfson deems necessary to support its warranty. specific testing of all parameters of each device is not ne cessarily performed unless required by law or regulation. in order to minimise risks associated with customer applications, the customer must use adequate design and operating safeguards to minimise inherent or procedural hazards. wolfs on is not liable for applications assistance or customer product design. the customer is solely responsible for its selection and use of wolfson products. wolfson is not liable for such selection or use nor for use of any circuitry other than circuitry entirely embodied in a wolfson product. wolfson?s products are not intended for use in life support sy stems, appliances, nuclear systems or systems where malfunction can reasonably be expected to result in personal injury, death or severe property or environmental damage. any use of products by the customer for such purposes is at the customer?s own risk. wolfson does not grant any licence (express or implied) under any patent right, copyright, mask work right or other intellectual property right of wolfson covering or relating to any combination, machine, or process in which its products or services might be or are used. any provision or publication of any third party?s products or services does not constitute wolfson?s approval, licence, warranty or endorsement thereof. any third party trade marks contained in this document belong to the respective third party owner. reproduction of information from wolfson datasheets is per missible only if reproduction is without alteration and is accompanied by all associated copyright, proprietary and other noti ces (including this notice) and conditions. wolfson is not liable for any unauthorised alteration of such information or for any reliance placed thereon. any representations made, warranties given, and/or liabilities accepted by any person which differ from those contained in this datasheet or in wolfson?s standard terms and conditions of sale, delivery and payment are made, given and/or accepted at that person?s own risk. wolfson is not liable for any such representations, warranties or liabilities or for any reliance placed thereon by any person. address: wolfson microelectronics plc 26 westfield road edinburgh eh11 2qb united kingdom tel :: +44 (0)131 272 7000 fax :: +44 (0)131 272 7001 email :: sales@wolfsonmicro.com
production data WM8994 w pd, april 2012, rev 4.4 359 revision history date rev description of changes changed by 16/11/10 3.5 drc signal detect registers drc _sig_det_rms, drc_sig_det_pk and drc_sig_det_mode updated. additional details provided on pull-up / pull-down functions. added notes that the output path hpf should be enabled when drc is used on a record (adc) path. noted that drc anti-clip and quick release features should not be used at the same time. ph 4/01/11 3.5 speaker driver performance graphs added. spkab_ref_sel added to ?registers by address? section. vmid soft-start descriptions updated, including requirement to reset soft-start circuit before re-enabling vmid. added note that ldos are not suitable for external loads. noted rf suppression on analogue inputs. pin description list re-sorted by name, in order to draw attention to any multiple pins with a common name. updates noting that ultrasonic (4fs) mode uses adclrclk (not lrclk). gpio1/gpio6 must be configured for aif1/aif2 respectively. input path drawing updated, showing vmid as pga reference. ph 8/02/11 3.5 2w stereo (into 4ohms) now specified. applications information (micbias) enhanced to incorporate digital microphone connections. interrupts section updated to improve clarity. ph 14/02/11 3.5 updated speaker inductive load in electrical characteristics to 22uh. kol 24/02/11 4.0 product status updated to production data updated bypass path speaker load in electrical characteristics to include 22uh inductor. updated mic detect threshold tolerance in electrical characteristics. updated dmicclk i/o voltage threshold test conditions. kol 18/05/11 4.1 notes added requiring vmid_buf_ena is enabled for direct signal paths from input pins to input mixers, output mixers or speaker mixers. descriptions of affected register bits updated. ultrasonic (4fs) mode deleted on aif2. clarification of micbias external component requirements. ph 26/09/11 4.2 pin descriptions updated (power domain information) clarification of dac_osr128 modes in dac playback path electrical characteristics. input pga mute behaviour description updated. updates to fll input frequency range. minimum headphone load resistance updated. clarifications and formatting updates to electrical characteristics and recommended operating conditions. noted phase inversion in ?direct voice? paths. clarification to the usage of the inputs_clamp register. ph 21/10/11 4.3 psrr specifications added for ldo1 and ldo2. drop-out voltage specification added for ldo1. tshut_ena default corrected in power management section (default is 1). ph 24/11/11 4.3 specifications added for lineoutfb and hpout1fb ground noise rejection. ph 19/03/12 4.4 additional details in absolute maximum ratings. clarification of line output discharge functions and associated electrical characteristics. ph


▲Up To Search▲   

 
Price & Availability of WM8994

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X